考虑以下文件:
{
"_id": 1,
"properties": [
{
"key": "foobar",
"value": null
},
{
"key": "xxx",
"value": "yyy"
}
]
}
属性已编入索引:
db.collections.ensureIndex('properties')
我想查找关键value
的{{1}}为foobar
的所有文档。
虽然此查询确实找到了值具有所需值的所有元素:
null
以下内容不会返回任何结果:
db.collections.find({ properties: { key: 'xxx', value: 'yyy' } })
感谢您的帮助!
答案 0 :(得分:1)
使用Ilan提到的$type
运算符,但您需要将其与$elemMatch
一起使用才能在这种情况下正常工作,否则$type
将不会被评估为运算符:
db.collections.find({properties: {
$elemMatch: { key: 'foobar', value: { $type: 10 }}
}})
答案 1 :(得分:0)
db.collections.find({ properties: { key: 'foobar', value: { $type: 10 } } })
{cancelDate:{$ type:10}}查询匹配包含cancelDate字段的文档,其值仅为null ;即,cancelDate字段的值为 BSON Type Null(即10)