ノード上のマングースに大量の配列を保存したい. これらの配列に一意の数値コレクションが含まれていることを確認したいと思います。ここに私のスキーマがあります:
var schema = new Schema({
array: { type: [Number], unique: true, required: true }
});
うまくいきません。たとえば、いくつかの (一意と呼ぶ) 配列を持ついくつかの新しい db モデルを作成して保存します。
new Model({ array: [1,2] })
new Model({ array: [0,2] })
...これを引き起こします:
E11000 duplicate key error index: test2.modes.$array_1 dup key: { : 1 }
..したがって、「unique」は、配列全体が一意であると見なすのではなく、これらの配列内のすべてのインデックスの一意性をチェックしているようです。
これをワンステップで行う別の方法はありますか?または、配列が一意であることを確認するために、たとえば schema.pre('save', fn) 内でデータベースで検索を実行する必要がありますか?