ドキュメントがあり、その属性の 1 つがドキュメント配列に追加されます。存在するかどうかを判断する方法は、すべての属性です。同じですか?属性を指定できますか?{_id:0,user:[{id:1,name:a}]}たとえば、上記のレコードの場合、データを追加したいのですが、 user 、ID が 1 の場合、既に存在することを意味するため追加されません。それ以外の場合はユーザー配列に追加されます $addToSet でこの要件を達成できます ありがとうございます
ringa_lee
必要なサブドキュメントの一意性は、$addToSet では実現できません。参考として 2 つのアイデアがあります:
1. ビジネス目的で複合的な一意のインデックスを作成してみます
例: テキスト {_id, name,number,user[{id,name}]} の name と user.id に一意の複合インデックスを作成します
2. コード制御
更新する前に $ne または $nin を使用して、既存の ID に user.id が存在するかどうかを確認します。存在しない場合は更新できます。
ご参考までに。
MongoDB が大好きです!楽しんでください!
必要なサブドキュメントの一意性は、$addToSet では実現できません。参考として 2 つのアイデアがあります:
1. ビジネス目的で複合的な一意のインデックスを作成してみます
例: テキスト {_id, name,number,user[{id,name}]} の name と user.id に一意の複合インデックスを作成します
2. コード制御
リーリー更新する前に $ne または $nin を使用して、既存の ID に user.id が存在するかどうかを確認します。存在しない場合は更新できます。
ご参考までに。
MongoDB が大好きです!楽しんでください!