📜  MongoDB - $each 修饰符

📅  最后修改于: 2022-05-13 01:56:58.429000             🧑  作者: Mango

MongoDB - $each 修饰符

MongoDB 提供了不同类型的数组更新运算符来更新文档中数组字段的值,$each 修饰符就是其中之一。此修饰符用于将多个值附加到数组字段。您可以将此修饰符与$addToSet$push运算符:

带有$addToSet运算符的$each修饰符 -
如果您将$each修饰符与$addToSet运算符,则如果指定的值不存在于数组字段中,则它将向数组字段添加多个值。
句法:

{ $addToSet: { : { $each: [ ,  ... ] } } }

带有$push运算符的$each修饰符 –
如果将 $each 修饰符与 $push 运算符,则会将多个值附加到数组字段。 $push运算符允许将 $each 修饰符与其他修饰符(如$slice$sort$position )一起使用。
句法:

{ $push: { : { $each: [ ,  ... ] } } }

在以下示例中,我们正在使用:

将 $each 修饰符与$addToSet运算符:

在此示例中,我们使用$each修饰符和$addToSet运算符更新名为 Sumit 的贡献者文档。这里,这个操作只在语言字段中添加了“Ruby”和“C”,并没有添加“Java”、“C#”,因为它们已经存在于语言字段中。

db.contributor.update({name: "Sumit"}, 
... {$addToSet: {language: {$each: ["Ruby", "Java", "C", "C#"]}}})

$each修饰符与$push运算符:

在此示例中,我们使用$each修饰符和$push运算符更新名为 Rohit 的贡献者文档。此处,此操作将指定的值,即 [“Java”, “C”, “Python”] 附加到语言字段的末尾。它不会删除重复值。

db.contributor.update({name: "Rohit"}, 
... {$push: {language: {$each: ["Java", "C", "Python"]}}})