2dsphere 不是路径"索引"中的有效类型



我在猫鼬中有 2 个模式,如下所示:

点架构.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PointSchema = new mongoose.Schema({
type: {
type: String,
enum: ['Point']
},
coordinates: {
type: [Number]
},
index: {
type: '2dsphere',
sparse: true
}
});
module.exports = {
PointSchema
};

设备架构.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PointSchema = require('./PointSchema').PointSchema;
const DeviceSchema = mongoose.Schema({
name: String,
location: {
type: PointSchema,
default: null
}
}, {
collection: 'devices',
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
});
module.exports = mongoose.model('Device', DeviceSchema);

PointSchema中是否存在一些问题.js因为它给出了以下错误:

类型错误:无效的架构配置:2dsphere不是有效的 在路径index处键入。

按照此文档创建 PointSchema.js: https://mongoosejs.com/docs/geojson.html

我解决了模型中下一个配置的问题!

module.exports = (mongoose) => {
const DomainSchema = new mongoose.Schema({
domain_id: { type: Number },
name: String,
domain_data: {
type: { type: String },
coordinates: { type: Array },
},
});
DomainSchema.index({ domain_data: '2dsphere' });
return mongoose.model('Domain', DomainSchema);
};

最新更新