mongodb - $addToSet如何指定字段来作为是否存在的检查字段
ringa_lee
ringa_lee 2017-05-02 09:25:30
0
1
898

有个文档,它的一个属性,是一个文档数组,我想往数组里面添加一个文档,如果存在,则不添加,这里的判断是否存在是如何判断的,是所有属性都相同才算?能不能指定一个属性
{_id:0,
user:[{id:1,name:a}]
}
比如,上面这条记录,我想往user里面添加数据,如果id为1,则表示已经存在,则不添加,否则就添加到user数组中
$addToSet能实现这种需求不
谢谢

ringa_lee
ringa_lee

ringa_lee

全員に返信(1)
世界只因有你

必要なサブドキュメントの一意性は、$addToSet では実現できません。参考として 2 つのアイデアがあります:

1. ビジネス目的で複合的な一意のインデックスを作成してみます

例: テキスト {_id, name,number,user[{id,name}]} の name と user.id に一意の複合インデックスを作成します

2. コード制御

リーリー

更新する前に $ne または $nin を使用して、既存の ID に user.id が存在するかどうかを確認します。存在しない場合は更新できます。

ご参考までに。

MongoDB が大好きです!楽しんでください!

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート