猫鼬在保存时允许重复字段
mongoose allow duplicate fields while saving
我的用户模型如下:
var UserSchema = new Schema({
name: {
type: String,
unique: false
},
user_url:{
type: String
},
email: {
type: String,
lowercase: true
},
role: {
type: String,
default: 'individual'
},
plan: {
type: String,
default: 'basic'
},
password: String,
provider: String,
salt: String,
facebook: {},
twitter: {},
google: {},
github: {}
});
如您所见,我正在尝试允许 name
字段中具有重复值的记录。然而,当试图保存它时会抛出一个错误:
Unhandled rejection WriteError({"code":11000,"index":0,"errmsg":"E11000 duplicate key error index: dev.users.$name_1 dup key: { : \"ttp2\" }","op":{"user_url":"ttp2-0","salt":"LY59ooaz+8zZ4z8+dA/7dw==","provider":"local","name":"ttp2","email":"ttp2_1@example.com","password":"wEOc+pejEwfz/s11SWQiMpHxrkh7yLC+q+oa6Tad/QGvH+OFTBMAsVssBRvUKoRjE1dyJkZeh5UvCEJsgXAhNA==","_id":"56b5cc49b6bc872413f6c9fb","__v":0}})
我做错了什么?
据推测,数据库上还有一个唯一索引。如果您从之前定义的 mongoose 模式中删除一个唯一约束,那将不会反映在数据库中。只需通过 mongodb 客户端直接删除该索引即可。
您还可以通过将类似这样的内容放入您的 model.js:
以编程方式更新您的架构
mongooseModel.collection.dropIndex('name_of_your_index');
我的用户模型如下:
var UserSchema = new Schema({
name: {
type: String,
unique: false
},
user_url:{
type: String
},
email: {
type: String,
lowercase: true
},
role: {
type: String,
default: 'individual'
},
plan: {
type: String,
default: 'basic'
},
password: String,
provider: String,
salt: String,
facebook: {},
twitter: {},
google: {},
github: {}
});
如您所见,我正在尝试允许 name
字段中具有重复值的记录。然而,当试图保存它时会抛出一个错误:
Unhandled rejection WriteError({"code":11000,"index":0,"errmsg":"E11000 duplicate key error index: dev.users.$name_1 dup key: { : \"ttp2\" }","op":{"user_url":"ttp2-0","salt":"LY59ooaz+8zZ4z8+dA/7dw==","provider":"local","name":"ttp2","email":"ttp2_1@example.com","password":"wEOc+pejEwfz/s11SWQiMpHxrkh7yLC+q+oa6Tad/QGvH+OFTBMAsVssBRvUKoRjE1dyJkZeh5UvCEJsgXAhNA==","_id":"56b5cc49b6bc872413f6c9fb","__v":0}})
我做错了什么?
据推测,数据库上还有一个唯一索引。如果您从之前定义的 mongoose 模式中删除一个唯一约束,那将不会反映在数据库中。只需通过 mongodb 客户端直接删除该索引即可。
您还可以通过将类似这样的内容放入您的 model.js:
以编程方式更新您的架构mongooseModel.collection.dropIndex('name_of_your_index');