MongoDb:$ push / $ addtoset之间的区别

我读了MongoDb中的文档,我用一个简单的certificate,我只看:Push是sorting数组,但addtoSet不是它。

对我来说,视觉上是一样的,我不知道区别。

有谁能解释我的区别?

另一个想法,如果它可能是西class牙语或简单的英语,我会赞成它。

$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: {item:2}}); // this will update the document. new document {_id: "docId", items:[1,2,2]} 

$ addToSet和$ push做同样的事情,但$推只是推动任何项目,而忽略重复导致冗余。 前者只推动独特的项目,不重复。

顾名思义,$ addToSet(set)将不允许重复,而$ push只需将元素添加到数组