使用 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"
   ]
}

相关文章