无法使用猫鼬设置 2dsphere 索引



我正在尝试为猫摩斯地理空间设置2DDSPHERE索引,但由于某些原因,我没有做到这一点,我已经尝试了一切,但仍然无法得到。

这是我的模式和位置字段。

loc: {
     type: { type: String, default: "Point" },
     coordinates: { type: [Number] }
},
causeSchema.index({ "loc": "2dsphere" });

和错误

无法找到$ Geonear查询的索引

如果有人知道解决方案,请在这里分享。谢谢

好吧,我实际上只是找到了解决方案。代码是完全正确的。

基本上,我试图设置2dsphere索引,就像您一样:

mySchema.index({ startLocation: '2dsphere' });

我在集合中存在的所有文档都将此startLocation字段设置为geojson值,尤其是Point ... ,只有一个!一个人对startLocation字段没有任何值,因此我无法设置索引!我只是删除了该文档,是的,索引在那里!

我是如何提出这个的?

我正在阅读MongoDB文档,我发现了这一点:

如果文件缺少2DSPHERE索引字段(或该字段为null或 空数组(,MongoDB不会将文档的条目添加到 索引

我认为这与这个问题有关,这让我认为也许一个文件缺乏startLocation的价值,实际上这是原因。

最新更新