检索mongoDB文档中的空数组或null

检索mongoDB文档中的空数组或null,mongodb,Mongodb,我和我学校的所有学生都有一个藏品。每个文档都有一个sports数组属性,该属性列出每个学生练习的运动,但该属性可能显示为sports:[]或sports:null或根本不显示 如何检索属于上述三种情况之一的所有文档 我如何将一项运动添加到只有一项运动但未表示为数组的学生,即有运动的学生:“羽毛球”?此属性能否成为数组?如果字段的值是目标值列表中的任意一个,则可以使用运算符查询文档: db.students.find({sports: {$in: [null, []]}}) 请注意,null案例

我和我学校的所有学生都有一个藏品。每个文档都有一个
sports
数组属性,该属性列出每个学生练习的运动,但该属性可能显示为
sports:[]
sports:null
或根本不显示

如何检索属于上述三种情况之一的所有文档

我如何将一项运动添加到只有一项运动但未表示为数组的学生,即有
运动的学生:“羽毛球”
?此属性能否成为数组?

如果字段的值是目标值列表中的任意一个,则可以使用运算符查询文档:

db.students.find({sports: {$in: [null, []]}})

请注意,
null
案例也与字段不存在的文档相匹配。

我相信您可以使用$elemMatch来实现这一点:

db.students.find({ $not: { $elemMatch: { $exists: true } } })
这会告诉mongoDB,如果数组存在且具有值,则会失败。它只返回null或空值。

在MongoDB上受支持的(更高版本)版本上:

find({field:{$not:{$size: 0}}})

这应该是公认的答案