【发布时间】:2021-05-20 12:27:23
【问题描述】:
我正在尝试在聚合管道中使用 $geoNear。
从 mongo shell 运行它同样可以正常工作:
db.base_model.aggregate([{$geoNear: {near: {type: "Point", coordinates: [10.634584, 35.8245029]}, distanceField: "coordinates"}}]).
但是像这样使用 mongoengine 运行
model.objects.aggregate(*[{"$geoNear": {"near": {"type": "Point", "coordinates": [10.634584, 35.8245029]}, "distanceField": "coordinates"}}])
返回以下错误$geoNear 仅作为管道中的第一阶段有效,即使 $geoNear 是管道中的唯一阶段。知道为什么会这样吗?
使用:
- mongoengine:0.17.0
- MongoDB 服务器版本:4.4.0
【问题讨论】:
-
您更可能滥用 mongoengine,不太可能它不支持这一点。查找相关文档,确保您遵循它,添加到问题中。
-
没有官方文档。除了 $geoNear 之外,所有其他阶段(如 $match 和 $project)都可以正常工作。 Mongoengine 的官方文档指出“MongoEngine 提供了一个对内置方法的包装器,并提供了一些自己的方法,这些方法被实现为在数据库服务器上执行的 Javascript 代码。”
-
那么这个文档在哪里?
标签: python-3.x mongodb pymongo mongoengine