使用 MongoDB 列表查询至少获取一个匹配项?
mongodbdatabasebig data analytics更新于 2026/1/16 13:37:17
使用 $in 运算符获取至少一个匹配项。首先,我们创建一个包含文档的集合 −
> db.atleastOneMatchDemo.insertOne({"StudentFavouriteSubject":["MySQL","MongoDB"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd2db5db64f4b851c3a13ce")
}
> db.atleastOneMatchDemo.insertOne({"StudentFavouriteSubject":["Java","C","MongoDB"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd2db71b64f4b851c3a13cf")
}
> db.atleastOneMatchDemo.insertOne({"StudentFavouriteSubject":["Python","C++","SQL Server"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd2db87b64f4b851c3a13d0")
}
>db.atleastOneMatchDemo.insertOne({"StudentFavouriteSubject":["Ruby","Javascript","C#","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd2dba9b64f4b851c3a13d1")
}
以下是使用 find() 方法显示集合中的所有文档的查询 −
> db.atleastOneMatchDemo.find().pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5cd2db5db64f4b851c3a13ce"),
"StudentFavouriteSubject" : [
"MySQL",
"MongoDB"
]
}
{
"_id" : ObjectId("5cd2db71b64f4b851c3a13cf"),
"StudentFavouriteSubject" : [
"Java",
"C",
"MongoDB"
]
}
{
"_id" : ObjectId("5cd2db87b64f4b851c3a13d0"),
"StudentFavouriteSubject" : [
"Python",
"C++",
"SQL Server"
]
}
{
"_id" : ObjectId("5cd2dba9b64f4b851c3a13d1"),
"StudentFavouriteSubject" : [
"Ruby",
"Javascript",
"C#",
"MySQL"
]
}
以下查询至少获得一个匹配项 −
>db.atleastOneMatchDemo.find({"StudentFavouriteSubject":{"$in":["MongoDB","MySQL"]}}).pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5cd2db5db64f4b851c3a13ce"),
"StudentFavouriteSubject" : [
"MySQL",
"MongoDB"
]
}
{
"_id" : ObjectId("5cd2db71b64f4b851c3a13cf"),
"StudentFavouriteSubject" : [
"Java",
"C",
"MongoDB"
]
}
{
"_id" : ObjectId("5cd2dba9b64f4b851c3a13d1"),
"StudentFavouriteSubject" : [
"Ruby",
"Javascript",
"C#",
"MySQL"
]
}

