有个文档,它的一个属性,是一个文档数组,我想往数组里面添加一个文档,如果存在,则不添加,这里的判断是否存在是如何判断的,是所有属性都相同才算?能不能指定一个属性{_id:0,user:[{id:1,name:a}]}比如,上面这条记录,我想往user里面添加数据,如果id为1,则表示已经存在,则不添加,否则就添加到user数组中$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 が大好きです!楽しんでください!