嵌套时使用$ near的MongoDB查询不起作用

时间:2014-11-12 13:30:29

标签: node.js mongodb coordinates 2dsphere

我的文章集中有几个文档。每个文档都有一个位置值和一些额外的数据。位置值如下所示:

"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 } } });

没有结果。

这可能是一些愚蠢的错误,但我真的找不到问题......

有没有人可以帮助我? 提前谢谢!

0 个答案:

没有答案