如何在 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" ] }

相关文章