我的文章集中有几个文档。每个文档都有一个位置值和一些额外的数据。位置值如下所示:
"loc" : {
"type" : "Point",
"coordinates" : [
4,
54
]
}
我可以通过执行以下命令来构建索引:
db.articles.ensureIndex({loc:"2dsphere"});
我可以使用以下查询根据文档的位置和$ maxDistance查询文档:
db.articles.find({ loc : { $near : {$geometry : {type : "Point" , coordinates : [4, 54] }, $maxDistance : 1000 } } });
这完美无缺!
但是当我在文档中更改“loc”对象的位置时,我的查询始终返回零结果。我的文档应如下所示(这是最小化版本):
{
"articledata" {
"content": {
"contact": {
"loc" : {
"type" : "Point",
"coordinates" : [
4.1,
54
]
}
}
}
}
}
当我重建索引查询时:
db.articles.ensureIndex({"articledata.content.contact.loc":"2dsphere"});
并在更改文档中的“loc”位置后再次执行我的查询:
db.articles.find({ "articledata.content.contact.loc" : { $near : {$geometry : {type : "Point" , coordinates : [4, 54] }, $maxDistance : 10000 } } });
没有结果。
这可能是一些愚蠢的错误,但我真的找不到问题......
有没有人可以帮助我? 提前谢谢!