$each

在本页面

定义

如果<field>中不存在值,则使用$addToSet operator 将多个值添加到 array <field>

{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } }

$push operator 一起使用可将多个值附加到 array <field>

{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } }

$push operator 可以将$each修饰符与其他修饰符一起使用。有关$push可用修饰符的列表,请参阅修饰符

例子

将$each 与$push Operator 一起使用

以下 example 将[ 90, 92, 85 ]的每个元素附加到scores array,以便name字段等于joe的文档:

db.students.update(
   { name: "joe" },
   { $push: { scores: { $each: [ 90, 92, 85 ] } } }
)

将$each 与$addToSet Operator 一起使用

集合inventory具有以下文档:

{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }

然后,以下操作使用$addToSet operator 和$each修饰符将多个元素添加到tags array:

db.inventory.update(
   { _id: 2 },
   { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } }
 )

该操作仅将"camera""accessories"添加到tags array,因为"electronics"已存在于 array 中:

{
  _id: 2,
  item: "cable",
  tags: [ "electronics", "supplies", "camera", "accessories" ]
}