我不明白为什么我的查询不能与MongoDb $ geoNear一起使用?
我检查了这个问题没有成功:mongodb geoNear command with filter
我的环境:
此作品
db.collection.geoNear(
coords,
{
query : { status: "1" } }, // I have the good filtered results
...
我已经测试了
...
query : { _id: { $in: itemIds } }, //no error and empty result
query : { "_id": "5639ce8c01f7d527089d2a74" }, //no error and empty result
query : { "_id" : 'ObjectId("5649e9f35f0b360300cad022")' }, //no error and empty result
query : { "_id" : ObjectId("5649e9f35f0b360300cad022") }, //error ObjectId not defined
...
我想要
db.collection.geoNear(
coords,
{
query : { _id: { $nin: poiIds } }, // no error but I have not the good results because I obtain all results geolocalized
...
谢谢; - )
答案 0 :(得分:0)
对于这个问题:
查询:{" _id" :ObjectId(" 5649e9f35f0b360300cad022")},//错误ObjectId未定义
尝试:
const ObjectID = require('mongodb').ObjectID
答案 1 :(得分:0)
就我而言,我是这样做的:
为模型中的坐标添加索引,然后请求查询。
modelSchema.index({ coords: '2dsphere' });
query = {
_id: {
$nin: poiIds
},
coords: {
$near: {
$geometry: { type: "Point", coordinates: position }
}
}
}
其中position
是数组[Lat, Lon]
。
希望这会有所帮助。 ;)