0

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

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

没有结果。

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

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

4

0 回答 0