如何获取条件discountPrice的所有数据不是nil?
如果我在我的mongo db中有这样的对象:
当我执行此查询" db.products.find()"时,我得到如下结果:
{
"_id" : ObjectId("123456778"),
"items" : [
{
"discountPrice" : 159200,
"_id" : ObjectId("54697e689857572459444162"),
}
]
},
{
"_id" : ObjectId("847446468"),
"items" : [
{
"discountPrice" : nil,
"_id" : ObjectId("54697e689857572459444162"),
}
]
}
如何得到这样的结果:
{
"_id" : ObjectId("123456778"),
"items" : [
{
"discountPrice" : 159200,
"_id" : ObjectId("54697e689857572459444162"),
}
]
}
怎么做?
答案 0 :(得分:3)
您可以使用$ne
运算符来匹配"不等于"到null
:
db.products.find( { "items.discountprice": { "$ne": null } } )
我已将nil
的引用更改为null
,因为nil
不是valid BSON type。我假设您使用的是使用nil
支持null
的ruby。使用你的mongodb驱动程序,我认为你仍然能够实际提供值nil
,但在这种语言不可知的帖子中,正确的值将是null
。
答案 1 :(得分:2)
你可以这样做:
db.products.find({'items.discountPrice':{ '$ne': null }});
有关查询的更多信息,请访问:http://docs.mongodb.org/manual/reference/operator/query/exists/
编辑:使用null的更新示例。