我正在尝试为猫鼬地理空间设置2dsphere索引,但是由于某些原因,我未能做到这一点,我已经尝试了所有方法,但仍然无法获得它。
这是我的架构和位置字段。
loc: {
type: { type: String, default: "Point" },
coordinates: { type: [Number] }
},
causeSchema.index({ "loc": "2dsphere" });
错误
找不到$ geoNear查询的索引
如果有人知道解决方案,请在此处分享。谢谢
答案 0 :(得分:0)
好吧,我实际上只是找到了解决方案。该代码是完全正确的。
基本上,我正尝试像您一样设置2dsphere
索引:
mySchema.index({ startLocation: '2dsphere' });
我在该收藏集中的所有文档都将此startLocation
字段设置为GeoJSON值,尤其是Point
... ,除了其中一个!该startLocation
字段没有任何值,因此我无法设置索引!我只是删除了那个文档,是的,索引在那里!
我正在阅读MongoDB documentation,发现了这一点:
如果文档缺少2dsphere索引字段(或该字段为null或 空数组),MongoDB不会将文档的条目添加到 索引
我认为这与这个问题有关,这让我认为也许一个文档缺少startLocation
的价值,而实际上这就是原因。