我想在Node的mongoose中存储一堆数组。我希望确保这些数组包含唯一的数字集合。以下是我的模式:
var schema = new Schema({
array: { type: [Number], unique: true, required: true }
});
它不起作用。例如,创建和保存一对具有几个(我称之为独特的)数组的新数据库模型:
new Model({ array: [1,2] })
new Model({ array: [0,2] })
...引起了这个问题:
E11000 duplicate key error index: test2.modes.$array_1 dup key: { : 1 }
看起来“unique”正在检查这些数组中的每个索引是否唯一,而不是整个数组是否唯一。
有没有其他方法可以一步完成这个操作?或者我必须在db中执行一个查找,例如在schema.pre('save',fn)中,以检查这些数组是否唯一?
$addToSet
运算符更新数组可能对您有所帮助。 - JohnnyHK