如何在 MongoDB 中查找一个数组中至少有一个元素不在另一个数组中的文档?
mongodbdatabasebig data analytics更新于 2026/1/10 16:37:17
为此,请在 MongoDB find() 中设置正则表达式。让我们创建一个包含文档的集合−
> db.demo228.insertOne({"Subjects":["MongoDB","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3fa51f03d395bdc213473b")
}
> db.demo228.insertOne({"Subjects":["MongoDB","Java","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3fa52c03d395bdc213473c")
}
借助 find() 方法显示集合中的所有文档 −
> db.demo228.find();
这将产生以下输出 −
{ "_id" : ObjectId("5e3fa51f03d395bdc213473b"), "Subjects" : [ "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }
以下查询用于查找数组中至少有一个项目不在另一个数组中的文档 −
> db.demo228.find({ "Subjects": /^(?!MongoDB|Java)/ });
这将产生以下输出 −
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }

