使用 $in 查找多个数组项的 MongoDB?


您可以使用 $in 运算符来查找多个数组项。要理解此概念,我们创建一个带有文档的集合。

创建带有文档的集合的查询如下 -

>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith",
   "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef07b559dd2396bcfbfc4")
}
>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"Carol","StudentLastName":"Taylor",
   "StudentCoreSubject":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef09d559dd2396bcfbfc5")
}
>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"Bob","StudentLastName":"Taylor",
   "StudentCoreSubject":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef0c7559dd2396bcfbfc6")
}
>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Johnson",
   "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef0f2559dd2396bcfbfc7")
}

在集合中,使用 find() 方法显示所有文档。查询如下 -

> db.findByMultipleArrayDemo.find().pretty();

以下是输出 -

{
   "_id" : ObjectId("5c7ef07b559dd2396bcfbfc4"),
   "StudentFirstName" : "John",
   "StudentLastName" : "Smith",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}
{
   "_id" : ObjectId("5c7ef09d559dd2396bcfbfc5"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor",
   "StudentCoreSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}
{
   "_id" : ObjectId("5c7ef0c7559dd2396bcfbfc6"),
   "StudentFirstName" : "Bob",
   "StudentLastName" : "Taylor",
   "StudentCoreSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}
{
   "_id" : ObjectId("5c7ef0f2559dd2396bcfbfc7"),
   "StudentFirstName" : "David",
   "StudentLastName" : "Johnson",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}

使用 $in 运算符来查找多个数组项 -

> db.findByMultipleArrayDemo.find({ StudentCoreSubject: { $in: ["Compiler", "Computer Networks"] }}).pretty();

以下是输出 -

{
   "_id" : ObjectId("5c7ef07b559dd2396bcfbfc4"),
   "StudentFirstName" : "John",
   "StudentLastName" : "Smith",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}
{
   "_id" : ObjectId("5c7ef0f2559dd2396bcfbfc7"),
   "StudentFirstName" : "David",
   "StudentLastName" : "Johnson",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}

更新于:30-7-2019

121 浏览

启动 职业

完成课程以获得认证

入门
广告
© . All rights reserved.