我有一个包含多个现有数据的mongodb集合,现在我想同时将新字段添加到同一集合中,同时新字段需要是唯一字段。
我正在将nodejs与猫鼬一起使用。
以下是我当前的模式。
const user = new mongoose.Schema({
username: { type: string, required: true},
token: { type: String, required: true }
});
现在下面是我的新架构
const user = new mongoose.Schema({
username: { type: string, required: true},
token: { type: String, required: true },
nickname: { type: String, required: true }
});
user.index({ "nickname": 1}, { "unique": true });
由于在运行代码时它具有现有数据,因此出现以下错误。
E11000 duplicate key error collection: ourcompany.users index: nickname_1 dup key: { : null }
我相信在创建新字段时,它将使用空值归档。由于新字段是唯一的,因此不允许多个空值。
我有这个document的场景,但是我不明白该怎么做。 请告诉我我需要填补的空白。
预先感谢
答案 0 :(得分:1)
使用sparse: true
使其为
const user = new mongoose.Schema({
username: { type: string, required: true},
token: { type: String, required: true },
nickname: { type: String, required: true,sparse: true }
});
希望有帮助!