最近搞MongoDB,在使用的过程中,发现操作一条文档中的内嵌List的时候,需要用到聚合函数,用mongodb 的说法是,管道操作符。
用下面里例子来说:
我需要操作mioPlnmioInfo中一条文档的mioLogList内嵌子集合:,我要根据集合中的某一个key 来分组,
具体代码如下:
1.使用$project,从文档中提取出需要操作的字段;
2.使用$unwind,将数组集合中的每一个值拆分成独立的文档。
3.使用$match,对文档集合进去筛选,查询条件
4.使用$group,依据特定的字段进行分组,
(详细介绍可以去自己百度下相应的介绍)
db.mioPlnmioInfo.aggregate(
{"$project":{"mioLogList": 1}},
{"$unwind" :"$mioLogList"},
{"$match":{"mioLogList.coreState":"N"}},
{"$group":{"_id":"$mioLogList.cntrNo","count":{"$sum":1}}}
);