MongoDB提供了不同类型的比较查询运算符,而$ in运算符就是其中之一。该运算符用于选择字段值等于数组中任何给定值的那些文档。并且,如果该字段包含一个数组,则此运算符仅选择那些其字段包含一个数组的文档,这些文档包含至少一个与指定数组的值匹配的项。您可以根据需要在find(),update()等方法中使用此运算符。
句法:
{field: {$in: [value1, value2, value3, ...]}}
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: contributor
Document: three documents that contain the details of the contributors in the form of field-value pairs.
使用$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()方法更新了与给定条件匹配的第一个文档,如下图所示。