如何在 MongoDB 中对数组执行 AND 查询?
mongodbdatabasebig data analytics
要获得与 MongoDB 中 AND 相同的结果,请使用 $all 运算符。首先,我们创建一个包含文档的集合。 −
> db.andQueryDemo.insertOne({"StudentName":"Carol Taylor","FavouriteSubject":["C","Java","MongoDB","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cc73e7a8f9e6ff3eb0ce433")
}
> db.andQueryDemo.insertOne({"StudentName":"David Miller","FavouriteSubject":["C++","Java","MongoDB","SQL Server"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cc73ea48f9e6ff3eb0ce434")
}
> db.andQueryDemo.insertOne({"StudentName":"Carol Taylor","FavouriteSubject":["Python","PL/SQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cc73ed38f9e6ff3eb0ce435")
}
以下是使用 find() 方法显示集合中的所有文档的查询 −
> db.andQueryDemo.find().pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5cc73e7a8f9e6ff3eb0ce433"),
"StudentName" : "Carol Taylor",
"FavouriteSubject" : [
"C",
"Java",
"MongoDB",
"MySQL"
]
}
{
"_id" : ObjectId("5cc73ea48f9e6ff3eb0ce434"),
"StudentName" : "David Miller",
"FavouriteSubject" : [
"C++",
"Java",
"MongoDB",
"SQL Server"
]
}
{
"_id" : ObjectId("5cc73ed38f9e6ff3eb0ce435"),
"StudentName" : "Carol Taylor",
"FavouriteSubject" : [
"Python",
"PL/SQL"
]
}
以下查询使用 $all 对 MongoDB 中的数组进行 AND 查询。此处,我们将同时包含 “Java” 和 “MongoDB” 的数组显示为 FavouriteSubject −
> db.andQueryDemo.find({FavouriteSubject:{$all:["Java","MongoDB"]}}).pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5cc73e7a8f9e6ff3eb0ce433"),
"StudentName" : "Carol Taylor",
"FavouriteSubject" : [
"C",
"Java",
"MongoDB",
"MySQL"
]
}
{
"_id" : ObjectId("5cc73ea48f9e6ff3eb0ce434"),
"StudentName" : "David Miller",
"FavouriteSubject" : [
"C++",
"Java",
"MongoDB",
"SQL Server"
]
}

