MongoDB - $each 修饰符
MongoDB 提供了不同类型的数组更新运算符来更新文档中数组字段的值,$each 修饰符就是其中之一。此修饰符用于将多个值附加到数组字段。您可以将此修饰符与$addToSet
和$push
运算符:
带有$addToSet
运算符的$each
修饰符 -
如果您将$each
修饰符与$addToSet
运算符,则如果指定的值不存在于数组字段中,则它将向数组字段添加多个值。
句法:
{ $addToSet: { : { $each: [ , ... ] } } }
带有$push
运算符的$each
修饰符 –
如果将 $each 修饰符与 $push 运算符,则会将多个值附加到数组字段。 $push运算符允许将 $each 修饰符与其他修饰符(如$slice
、 $sort
和$position
)一起使用。
句法:
{ $push: { : { $each: [ , ... ] } } }
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: contributor
Document: two documents that contain the details of the contributor in the form of field-value pairs.
将 $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"]}}})