$addToSet
简述:将元素添加进数组字段,且不重复。这也正是set这一数据结构的特性。
用法:
{ $addToSet: { : , … } }
示例:
inventory表的原始数据
{ _id: 1, item: “polarizing_filter”, tags: [ “electronics”, “camera” ] }
1.添加一个元素
具体代码
db.inventory.update(
{ _id: 1 },
{ $addToSet: { tags: “accessories” } }
)
结果
{ _id: 1, item: “polarizing_filter”, tags: [ “electronics”, “camera”, “accessories” ] }
2.添加多个元素
具体代码
db.inventory.update(
{ _id: 1 },
{ $addToSet: { tags: { $each: [ “camera”, “electronics”, “accessories”, “supplies” ] } } }
)
结果
{ _id: 1, item: “polarizing_filter”, tags: [ “electronics”, “camera”, “accessories”, “supplies” ] }
小结:利用 addToSet操作数组,我们可以不用去检测重复,十分方便,结合 each,可以直接传入数组,类似于js数组的concat方法,区别在于结果是个元素唯一的数组。