mongodb group的finalize方法里怎么针对查询结果进一步过滤
怪我咯
怪我咯 2017-04-24 09:13:14
0
1
565

db.TruckUsers.group({
key:{PhoneNumber:true},
initial:{Count:0},
reduce:function(doc,prev)
{
if (!prev.PhoneNumber)
{
prev.PhoneNumber = doc.PhoneNumber;
prev.Count = 1;
}
else if(doc.PhoneNumber == prev.PhoneNumber)
{
prev.Count++;
}
},
finalize:function(doc)
{
for(i in doc.Count)
{
if (doc.Count > 1)
{
doc.NewPhoneNumber = doc.PhoneNumber;
doc.NewCount = doc.Count;
}
}

    delete doc.PhoneNumber;
    delete doc.Count;
}

})

我想只显示Count>1的记录,但不知道如何下手,现在的这个结果会把所有的记录都会显示出来,如下:

"28" : {},
"29" : {},
"30" : {},
"31" : {},
"32" : {},
"33" : {},
"34" : {},
"35" : {},
"36" : {},
"37" : {},
"38" : {},
"39" : {},
"40" : {},
"41" : {
    "NewPhoneNumber" : "18217039***",
    "NewCount" : 3
},
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
伊谢尔伦

使用aggregate的match属性可以实现

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板