如何搜索>> 值<{1}}字段中的记录:
undefined
答案 0 :(得分:29)
按$type:6
,(mongodb referece,过滤它,请注意此类型标记为“已弃用”):
db.records.aggregate({
$match: {
myField: {'$type':6},
}
})
答案 1 :(得分:22)
如果要过滤掉缺少某些字段的文档,请使用$exists
运算符。
这适用于我的机器:
> db.test.drop()
true
> db.test.insert( {'Hello':'World!', 'myField':42})
> db.test.insert( {'Hello again':'World!'})
> db.test.aggregate({'$match':{ 'myField':{'$exists':false} }})
{
"result" : [
{
"_id" : ObjectId("51b9cd2a6c6a334430ec0c98"),
"Hello again" : "World!"
}
],
"ok" : 1
}
myField存在的文档未显示在结果中。
答案 2 :(得分:0)
如果字段存在但未定义,则可以使用null进行搜索。
db.records.aggregate({
$match: {
myField: {$exists: true, $eq: null},
}
})