MongoDB–查找数组字段长度大于等于N的所有文档
1.需求mongodb查询过滤出某个数组字段元素个数(即长度) >= N的所有文档,或者查询长度=N的所有文档例如有如下格式的文档,collection:defect_product_data{"barcode" : "028201693002026300269101111000000000","status" : "judg_audited","judge_info" : [{"judge
·
1.需求
mongodb查询过滤出某个数组字段元素个数(即长度) >= N的所有文档,或者查询长度=N的所有文档
例如有如下格式的文档,collection:defect_product_data
{"barcode" : "028201693002026300269101111000000000",
"status" : "judg_audited",
"judge_info" : [
{
"judge_result" : "concession",
"rework_process" : "清洗",
"judge_user" : "",
"judge_opinion" : "",
"judge_time" : ISODate("2020-09-23T15:59:11.660+0000"),
"judge_type" : "judge"
},
{
"judge_result" : "concession",
"rework_process" : "清洗",
"judge_user" : "test",
"judge_opinion" : "重新判定",
"judge_time" : ISODate("2020-09-23T15:59:11.660+0000"),
"judge_type" : "audit",
"audit_result" : "reject"
},
]},
2. 查询状态为judge_audited,且judge_info长度大于等于2的文档
ps.加上判断该字段必须存在的逻辑,避免报错
db.defect_product_data.find({'status':'judge_audited','judge_info': {'$exists':true}, '$where':'this.judge_info.length>=2'})
3. 查询状态为judged,且长度为1的文档
db.defect_product_data.find({'status':'judged','judge_info': {'$size':1}})
更多推荐
已为社区贡献3条内容
所有评论(0)