Azure Геопространственный запрос CosmosDB с использованием интерфейса MongoDB ведет себя странно - PullRequest
1 голос
/ 07 февраля 2020

У меня есть коллекция в Azure Cosmosdb (MongoDB API), в которой есть пакет документов, содержащих геопространственные данные. Когда я запрашиваю базу данных для всех точек в определенном многоугольнике, использование оболочки MongoDB возвращает точки правильно, но использование pymon go ничего не дает мне. Более конкретно:

в оболочке mongodb

globaldb:PRIMARY> db.test_collection.find( { "Location" : { "$geoWithin" :  { "$geometry" : { "type" : "Polygon" ,"coordinates" :[ [ [ 0 , 0 ] , [ 41 , 0 ] , [41,6],[0,6], [0,0] ] ] }  } } } )
{ "_id" : ObjectId("5e395a9929ae6f6ec66bc97e"), "info" : "test_info", "region" : "region", "Location" : { "type" : "Point", "coordinates" : [ 40, 5 ] } }
{ "_id" : ObjectId("5e395ab895c1327b1c4568b4"), "info" : "test_info", "region" : "region", "Location" : { "type" : "Point", "coordinates" : [ 40, 5 ] } }
{ "_id" : ObjectId("5e395b6bd76420859e134e26"), "info" : "test_info", "region" : "region", "Location" : { "type" : "Point", "coordinates" : [ 40, 5 ] } }

Записи правильно возвращаются

в python (pymon go)

cur_collection = db.test_collection
points_in = cur_collection.find(
    { "Location" :
          { "$geoWithin" :
                { "$geometry" : { "type" : "Polygon",
                            "coordinates" :
                                [ [
                                    [ 0 , 0 ] ,
                                    [ 41 ,0 ] ,
                                    [ 41 ,6 ],
                                    [ 0,  6],
                                    [ 0,  0]
                                ] ]

                }
            }
        }
    }
)
for point in points_in:
    print(point)

ничего не дает.

Что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...