检索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}}})
这应该是公认的答案