一、$each修饰符适用于$addToSet操作符和$push操作符:
和$addToSet操作符一起使用添加多个值到数组字段中如果值不存在于数组字段中。
{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } }
使用$push操作符添加多个 值到数组字段中:
{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } }
二、和$push操作符一起使用$each修饰符
如下的例子添加数组[ 90, 92, 85 ]
中的每个元素到scores数组字段中,查询条件是name字段等于joe
db.students.update(
{ name: "joe" },
{ $push: { scores: { $each: [ 90, 92, 85 ] } } }
)
三、$each修饰符和$addToSet操作符一起使用
集合inventory
有如下文档
{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }
如下的操作使用$addToSet操作符和$each修饰符一起使用添加多个元素到tags数组中:
db.inventory.update(
{ _id: 2 },
{ $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } }
)
上面的操作只会将
"camera"
和
"accessories"
元素添加到tags数组中由于“electronics”元素已经存在了