【发布时间】:2019-04-01 05:35:31
【问题描述】:
我正在为错误 E11000 重复键错误收集而苦苦挣扎,我有一个带有另一个子架构数组的架构,当我尝试使用空数组插入我的架构时,我总是收到此错误。我试图在没有成功的情况下在预保存时将其设置为未定义...我已经从 mongoDB 及其索引中删除了我的方案。我在标记模式中插入 **autoincrement ** 后出现错误。
城市架构:
let mongoose = require('mongoose');
let autoIncrement = require('mongoose-auto-increment');
let Marker = require('./marker');
var MarkerSchema = require('mongoose').model('marker').schema;
//City Schema
//status : 1 Ok, 2 Hidden, 3 Deleted
let citySchema = mongoose.Schema({
id: {
type: Number,
required: true
},
name: {
type: String,
required: true
},
status: {
type: Number,
required: true
},
coordinates: {
latitude: {
type: Number,
required: true
},
longitude: {
type: Number,
required: true
}
},
markers: [MarkerSchema]
});
citySchema.pre('save', function (cb) {
console.log('pre save');
if (this.markers && this.markers.length === 0) {
this.markers = undefined;
}
cb();
});
citySchema.plugin(autoIncrement.plugin, {
model: 'city',
field: 'id',
startAt: 1,
incrementBy: 1
});
let City = module.exports = mongoose.model('city', citySchema);
标记架构
let mongoose = require('mongoose');
let autoIncrement = require('mongoose-auto-increment');
let markerSchema = mongoose.Schema({
status: {
type: Number,
required: true
},
description: {
type: String,
required: true
},
coordinates: {
latitude: {
type: Number,
required: true
},
longitude: {
type: Number,
required: true
}
}
});
markerSchema.plugin(autoIncrement.plugin, {
model: 'marker',
field: 'id',
startAt: 1,
incrementBy: 1
});
let Marker = module.exports = mongoose.model('marker', markerSchema);
【问题讨论】:
标签: node.js mongoose mongoose-schema mongoose-auto-increment