我正在尝试为猫摩斯地理空间设置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
的价值,实际上这是原因。