📜  MongoDB $ in运算符

📅  最后修改于: 2021-04-17 03:59:53             🧑  作者: Mango

MongoDB提供了不同类型的比较查询运算符,而$ in运算符就是其中之一。该运算符用于选择字段值等于数组中任何给定值的那些文档。并且,如果该字段包含一个数组,则此运算符仅选择那些其字段包含一个数组的文档,这些文档包含至少一个与指定数组的值匹配的项。您可以根据需要在find(),update()等方法中使用此运算符。

句法:

{field: {$in: [value1, value2, value3, ...]}}

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

使用$in运算符匹配值:

在此示例中,我们仅检索名称为Amit或Suman的那些雇员的文档。

db.contributor.find({name: {$in: ["Amit", "Suman"]}}).pretty()

使用$in运算符匹配数组中的值:

在此示例中,我们仅检索使用C#, Python或同时使用两种语言的那些员工的文档。

db.contributor.find({language: {$in: ["C#", "Python"]}}).pretty()

使用$in运算符匹配嵌入/嵌套文档中的值:

在此示例中,我们仅检索那些在学期中获得给定分数的员工文件。

db.contributor.find({"personal.semesterMarks":{$in: [80, 89, 78]}}).pretty()

使用$in运算符更新数据:

在此示例中,我们通过使用带有$ in和$ set运算符的update()方法在Amit和Suman的文档中添加新的字段值对(即,薪水:10000)。

db.contributor.update({name: {$in: ["Amit", "Suman"]}}, {$set: {salary: 10000}})

注意:默认情况下, update()方法一次仅更新一个文档。如果要更新多个文档,则将其multi参数的值设置为true。因此,在此示例中,update()方法更新了与给定条件匹配的第一个文档,如下图所示。