在 MongoDB 中查找包含特定值的数组文档
mongodbdatabasebig data analytics更新于 2026/1/16 23:52:17
您可以使用 find() 方法查找包含特定值的数组文档。语法如下:
db.yourCollectionName.find({"yourArrayFieldName":"yourValue"},.......N).pretty();
为了理解上述语法,让我们创建一个包含文档的集合。创建包含文档的集合的查询如下:
>db.findSpecificValue.insertOne({"StudentId":1,"StudentName":"Larry","FavouriteSubject":["C","C++","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6e8996140577d89182b8d0")
}
>db.findSpecificValue.insertOne({"StudentId":2,"StudentName":"Larry","FavouriteSubject":["MongoDB","MySQL","SQL Server"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6e89b1140577d89182b8d1")
}
使用 find() 方法显示集合中的所有文档。查询如下:
> db.findSpecificValue.find().pretty();
输出结果如下:
{
"_id" : ObjectId("5c6e8996140577d89182b8d0"),
"StudentId" : 1,
"StudentName" : "Larry",
"FavouriteSubject" : [
"C",
"C++",
"Java"
]
}
{
"_id" : ObjectId("5c6e89b1140577d89182b8d1"),
"StudentId" : 2,
"StudentName" : "Larry",
"FavouriteSubject" : [
"MongoDB",
"MySQL",
"SQL Server"
]
}
以下查询用于查找包含特定值(例如,此处的 FavouriteSubject 为"MongoDB")的数组文档:
> db.findSpecificValue.find({"FavouriteSubject":"MongoDB"}).pretty();
输出结果如下:
{
"_id" : ObjectId("5c6e89b1140577d89182b8d1"),
"StudentId" : 2,
"StudentName" : "Larry",
"FavouriteSubject" : [
"MongoDB",
"MySQL",
"SQL Server"
]
}

