1. ホーム
  2. mongodb

[解決済み] MongoDb: push と $addtoset の違い

2023-04-20 21:39:41

疑問点

MongoDbのドキュメントを読んで、簡単なprovesを使ってみたのですが、それしか見えません。 プッシュで配列がソートされるけど addtoSet はそうでないことです。

私にとっては視覚的に同じで、違いがわかりません。

どなたか違いを教えていただけませんか?

もし、スペイン語か簡単な英語であれば、私はそれを認めると思います。

どのように解決するには?

$addToSet は、与えられたフィールドにすでに項目が含まれている場合は、その項目を追加しませんが、一方 $push は与えられたオブジェクトが存在するかどうかに関わらずフィールドに追加します。

{_id: "docId", items: [1, 2]}
db.items.update({_id:"docId"}, {$addToSet:{items: 2}}); // This won't update the document as it already contains 2
db.items.update({_id:"docId"}, {$push: {items:2}}); // this will update the document. new document {_id: "docId", items:[1,2,2]}