mongodb 查询条件根据数组array的长度(size) 大于某值或者小于某值的查询

Life is short , play more!
本文来自lihao's Blog,转载请注明。

1. 查询某个array的长度等于某值时,我们可以简单的使用$size 操作符。

我们想联合查询符合这2个条件的记录

db.getCollection('taskinfos').find( { $and : [  {"taskDetail.otherParams.partner":"LIHAO"} , { "taskStatus":{ $size : 3 } } ]  }).count()

而如果我们想查看taskStatus 数据的长度大于2的时候呢, 用$size 不可用。

// 注意: 此下的语句是不可运行的。 
db.getCollection('taskinfos').find( { $and : [  {"taskDetail.otherParams.partner":"YI_MEI"} , { "taskStatus":{ $size : {$gt:2} } } ]  }).count()

 

2. 如果数据的长度大于2 时候,则需要用如下$where 操作符

db.getCollection('taskinfos').find( { "taskDetail.otherParams.partner":"YI_MEI" , $where: "this.taskStatus.length > 2" }   )

 

 


发表评论

电子邮件地址不会被公开。 必填项已用*标注