我想在节点上的猫鼬中存储大量数组。我想确保这些数组包含唯一的数字集合。这是我的架构:
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 }
..所以看起来“唯一”正在检查这些数组中的每个索引的唯一性,而不是整个数组是否唯一。
还有另一种方法可以一步完成吗?或者我是否必须在数据库上执行查找,比如在 schema.pre('save', fn) 内部,以检查数组是否唯一?