使用 MongoDB 检查字段是否存在?

mongodbdatabasebig data analytics更新于 2026/1/19 21:07:17

您可以使用 $exists 和 $ne 运算符来实现这一点。为了进一步理解这个概念,让我们创建一个包含文档的集合。创建包含文档的集合的查询如下: −

> db.checkFieldExistDemo.insertOne({"EmployeeId":1,"EmployeeName":"John","isMarried":true,"EmployeeSalary":4648585});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c76f7b31e9c5dd6f1f78281")
}
> db.checkFieldExistDemo.insertOne({"StudentId":2,"StudentName":"John","isMarried":false," StudentAge":19});
{
   "acknowledged" : true,0
   "insertedId" : ObjectId("5c76f7e11e9c5dd6f1f78282")
}

借助 find() 方法显示集合中的所有文档. 查询如下 −

> db.checkFieldExistDemo.find().pretty();

输出

{
   "_id" : ObjectId("5c76f7b31e9c5dd6f1f78281"),
   "EmployeeId" : 1,
   "EmployeeName" : "John",
   "isMarried" : true,
   "EmployeeSalary" : 4648585
}
{
   "_id" : ObjectId("5c76f7e11e9c5dd6f1f78282"),
   "StudentId" : 2,
   "StudentName" : "John",
   "isMarried" : false,
   "StudentAge" : 19
}

以下查询用于检查该字段是否存在于 MongoDB 中。

情况 1 − 当某个字段存在于多个文档中时。查询如下 −

> db.checkFieldExistDemo.find({"isMarried":{$exists:true,$ne:null}}).pretty();

输出

{
   "_id" : ObjectId("5c76f7b31e9c5dd6f1f78281"),
   "EmployeeId" : 1,
   "EmployeeName" : "John",
   "isMarried" : true,
   "EmployeeSalary" : 4648585
}
{
   "_id" : ObjectId("5c76f7e11e9c5dd6f1f78282"),
   "StudentId" : 2,
   "StudentName" : "John",
   "isMarried" : false,
   "StudentAge" : 19
}

案例 2 − 当某个字段仅出现在一个文档中时。查询如下 −

> db.checkFieldExistDemo.find({"StudentName":{$exists:true,$ne:null}}).pretty();

输出

{
   "_id" : ObjectId("5c76f7e11e9c5dd6f1f78282"),
   "StudentId" : 2,
   "StudentName" : "John",
   "isMarried" : false,
   "StudentAge" : 19
}

相关文章