私のプロジェクトでは、次のように、組織のグループのマングース ドキュメントを保持したいと考えています。
var groupSchema = Schema({
name : { type : String },
org : { type : Schema.Types.ObjectId, ref : 'Organization' },
...
users : [{
uid : { type : Schema.Types.ObjectId, ref : 'User' },
...
}]
});
同じユーザーが同じグループに 2 回入らないようにしたい。これを行うには、users.uid を users 配列内で一意にする必要があります。uid に「unique : true」を指定しようとしましたが、うまくいきませんでした。追加のクエリやスキーマの分割を行わずに、mongoose または mongoDB でこれを行う方法はありますか?
編集: uid の以前の値を uid に変更しました: { type : Schema.Types.ObjectId, ref : 'User', index: {unique: true, dropDups: true} } しかし、これはまだ機能していないようです。
編集:これを達成する簡単な方法がないと仮定して、ユーザーが既にグループに属しているかどうかを確認する追加のクエリを追加しました。これは私には最も簡単な方法のようです。