Pi *_*rse 6 mongodb mongodb-query
我有一个集合,文档如下所示:
/* 0 */
{
"_id" : ObjectId("5320b1c723bc746084fa7107"),
"channels" : [
3,
4
]
}
/* 1 */
{
"_id" : ObjectId("5320b1c723bc746084fa7107"),
"channels" : [ ]
}
Run Code Online (Sandbox Code Playgroud)
我想形成一个查询,以便我想要所有文件,其中渠道有一些价值而且不是空的.
我试过这个:
db.event_copy.find({"channels":{$exists:true}})
Run Code Online (Sandbox Code Playgroud)
但是这仍然会返回我在通道中没有值的文档.
Nei*_*unn 15
你需要$ size运算符.要查找没有元素的内容,请执行以下操作
db.collection.find({ channels: {$size: 0} })
Run Code Online (Sandbox Code Playgroud)
如果你知道你有一个固定的大小,那么这样做
db.collection.find({ channels: {$size: 2} })
Run Code Online (Sandbox Code Playgroud)
否则用$ not反转
db.collection.find({ channels: {$not:{$size: 0}} })
Run Code Online (Sandbox Code Playgroud)
你可以结合$和:
db.collection.find({ $and: [
{ channels: {$not:{$size: 0}} },
{ channels: {$exists: true } }
]})
Run Code Online (Sandbox Code Playgroud)
我用这个做到了:
db.event_copy.find({'channels.0' : {$exists: true}}).count()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23894 次 |
最近记录: |