Python 如何查询PointField-MongoEngine

Python 如何查询PointField-MongoEngine,python,django,mongodb,flask,mongoengine,Python,Django,Mongodb,Flask,Mongoengine,我试图用upsert\u one更新我的flask应用程序中的PointField。但它总是插入新文档。我知道问题在于我传递的查询 下面是我的模型 class Location(db.Document): location_name = db.StringField(required=True) geoCoords = db.PointField() 和更新查询 Location.objects(geoCoords=loc["geoCoords"]).upsert_one(lo

我试图用
upsert\u one
更新我的
flask
应用程序中的
PointField
。但它总是插入新文档。我知道问题在于我传递的查询

下面是我的模型

class Location(db.Document):
    location_name = db.StringField(required=True)
    geoCoords = db.PointField()
和更新查询

Location.objects(geoCoords=loc["geoCoords"]).upsert_one(location_name=loc["location_name"], geoCoords=loc["geoCoords"])
#loc["geoCoords"] = [77.6309395,12.9539974]
我还试着运行
get
。但是我收到错误消息“位置匹配查询不存在。”用于下面的查询

loc = Location.objects(geoCoords=[77.6309395,12.9539974]).get()
我的
收藏中有以下条目

> db.location.find()
{ "_id" : ObjectId("59c5019727bae70ad3259e67"), "geoCoords" : { "type" : "Point", "coordinates" : [ 77.6309395, 12.9539974 ] }, "location_name" : "Bengaluru" }
{ "_id" : ObjectId("59c5022d27bae70ad3259ea2"), "geoCoords" : { "type" : "Point", "coordinates" : [ 77.6309395, 12.9539974 ] }, "location_name" : "Bengaluru" }
>
我找不到有关查询点域的任何相关信息,请尝试以下操作:

Location.objects(geoCoords="...").update(location_name=loc["location_name"], geoCoords=loc["geoCoords"])
试试这个:

Location.objects(geoCoords="...").update(location_name=loc["location_name"], geoCoords=loc["geoCoords"])

回答我的问题。我认为没有办法得到我在问题中提到的确切的要点

这里最接近的方法是使用
选择器附近的
\u。这接受以米为单位的范围。因此,您可以根据自己的要求进行最近距离查询

就我而言,我给了100米。这对我来说很好

例如:

Location.objects(geoCoords__near=thelocation["geoCoords"], geoCoords__max_distance=100).upsert_one(location_name=thelocation["location_name"], geoCoords=thelocation["geoCoords"])

回答我的问题。我认为没有办法得到我在问题中提到的确切的要点

这里最接近的方法是使用
选择器附近的
\u。这接受以米为单位的范围。因此,您可以根据自己的要求进行最近距离查询

就我而言,我给了100米。这对我来说很好

例如:

Location.objects(geoCoords__near=thelocation["geoCoords"], geoCoords__max_distance=100).upsert_one(location_name=thelocation["location_name"], geoCoords=thelocation["geoCoords"])

upsert\u one
不工作,因为
Location.objects(geoCoords=loc[“geoCoords”])
返回的
位置匹配查询不存在。
。因此,
update
也一样。
upsert\u one
不起作用,因为
Location.objects(geoCoords=loc[“geoCoords”])
返回的
位置匹配查询不存在。
。因此,
更新也一样。