我正在尝试为mongoose地理空间设置2dsphere索引,但由于某些原因我做不到,我已经尝试了所有方法,但仍然无法获得它。
这是我的模式和位置字段。
loc: {
type: { type: String, default: "Point" },
coordinates: { type: [Number] }
},
causeSchema.index({ "loc": "2dsphere" });和错误
找不到$geoNear查询的索引
如果有人知道解决方案,请在这里分享。谢谢
发布于 2019-12-16 00:51:50
好吧,实际上我刚刚找到了解决方案。代码是完全正确的。
基本上,我是想建立一个2dsphere索引,就像你一样:
mySchema.index({ startLocation: '2dsphere' });集合中的所有文档都将此startLocation字段设置为GeoJSON值,特别是Point...,但只有一个除外!该字段没有任何startLocation字段的值,因此我无法设置索引!我刚刚删除了那个文档,是的,索引就在那里!
我是怎么做到这一点的?
我在读MongoDB documentation的时候发现了这个:
如果文档缺少2dsphere索引字段(或者该字段为空或空数组),则MongoDB不会将该文档的条目添加到索引中
我认为它与这个问题相关,这让我认为可能有一个文档缺乏startLocation的价值,实际上这就是原因。
https://stackoverflow.com/questions/56003641
复制相似问题