我尝试在我的集合中创建一个2dsphere索引,当我创建一个我应该有一个2dsphere索引的用户时。
我从这个答案中引用了Create & Find GeoLocation in mongoose
我在这种情况下使用代码:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PointSchema = new Schema({
type: { type: String, default: 'Point'},
coordinates: { type: [Number], index: '2dsphere'}
});
const DriverSchema = new Schema({
email: {
type: String,
required: true
},
driving: {
type: Boolean,
default: false
},
geometry: PointSchema
});
DriverSchema.index({ "geometry": "2dsphere"});
const Driver = mongoose.model('driver', DriverSchema);
module.exports = Driver;
我不知道哪一步出错了,希望有人能告诉我。
这是我的架构代码:
FrameLayout
提前致谢。
答案 0 :(得分:1)
您需要更新您的架构,如下所示:
coordinates: {
type: [Number], // <lng, lat>
index: { type: '2dsphere', sparse: false },
required: true,
},
在此之后创建一个新记录并像这样检查Robo 3T
:
db.hotspot.aggregate([{$indexStats: {}}]);
然后你会得到这个输出:
{
"name" : "location_2dsphere",
"key" : {
"coordinates" : "2dsphere"
},
"host" : "neel-Vostro-1450:27017",
"accesses" : {
"ops" : NumberLong(0),
"since" : ISODate("2018-03-11T14:04:12.785Z")
}
}