// 查询所有包含指定字段的文档
// 替换 "fieldName" 为你要检查的字段名
db.collection('yourCollection').find({
fieldName: { $exists: true }
})
// 例如,查询所有包含 "email" 字段的文档
db.collection('users').find({
email: { $exists: true }
})
// 如果你想查询字段不为 null 的文档
db.collection('yourCollection').find({
fieldName: { $exists: true, $ne: null }
})
// 将结果转换为数组
db.collection('yourCollection').find({
fieldName: { $exists: true }
}).toArray()
// 查询同时拥有多个字段的文档
db.collection('yourCollection').find({
fieldName1: { $exists: true },
fieldName2: { $exists: true }
})
// 查询至少拥有其中一个字段的文档
db.collection('yourCollection').find({
$or: [
{ fieldName1: { $exists: true } },
{ fieldName2: { $exists: true } }
]
})
// 统计包含特定字段的文档数量
db.collection('yourCollection').countDocuments({
fieldName: { $exists: true }
})
// 同时统计包含与不包含该字段的文档数量
db.collection('yourCollection').aggregate([
{
$group: {
_id: { hasField: { $exists: "$fieldName" } },
count: { $sum: 1 }
}
}
])
在 MongoDB 中,$exists 操作符是查询某个字段是否存在的主要方法。结合其他查询条件,可以灵活筛选出符合业务需求的文档。
// 查询不包含指定字段的文档
// 替换 "fieldName" 为你要检查的字段名
db.collection('yourCollection').find({
fieldName: { $exists: false }
})
// 例如,查询所有不包含 "email" 字段的文档
db.collection('users').find({
email: { $exists: false }
})
// 统计不包含特定字段的文档数量
db.collection('yourCollection').countDocuments({
fieldName: { $exists: false }
})
// 将结果转换为数组
db.collection('yourCollection').find({
fieldName: { $exists: false }
}).toArray()
使用 $exists: false 可以查询所有不包含指定字段的文档。这在数据清理或检查数据完整性时非常有用。