📜  MongoDB – $pull 运算符

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

MongoDB – $pull 运算符

MongoDB 提供了不同类型的数组更新运算符来更新文档中数组字段的值, $pull运算符就是其中之一。此运算符用于从现有数组中删除值或与指定条件匹配的值的所有实例。

句法:

{ $pull: { : , : , ... } }

在这里, 可以在嵌入/嵌套文档或数组中用点表示法指定。

  • $pull 运算符,如果您指定 并且数组包含嵌入/嵌套文档,则此运算符应用 就好像每个数组项都是集合中的文档一样。
  • 如果您在$pull运算符指定 以删除数组,则此运算符将仅删除数组中与指定的 匹配的项目。在这里,顺序必须相同。
  • 如果您在$pull运算符指定 以删除文档,则此运算符将仅删除数组中具有完全相同字段和值的项目。在这里,字段的顺序可以不同。
  • 您可以根据需要将此运算符与 update()、findAndModify() 等方法一起使用。

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

删除所有等于指定值的元素:

在此示例中,我们将从语言字段中删除指定的元素,即 [“C#”, “Perl”]。

db.contributor.update({},
... {$pull: {language: {$in: ["C#", "Perl"]}}},
... {multi: true})

删除所有符合指定条件的元素:

在此示例中,我们将从文档中与指定条件(即姓名:“Rohit”)中的personal.semesterMarks字段中删除小于等于 ( $lte ) 73 的学期标记。

db.contributor.update({name: "Rohit"}, 
                      {$pull: {"personal.semesterMarks": {$lte: 75}}})

从文档数组中删除元素:

在这个例子中,我们从文档数组中删除了 language: “Java”和 tArticles: 50 项,即文章字段。

db.contributor.update({}, 
... {$pull: {articles: {language: "Java", tArticles: 50}}}, 
... {multi: true})