我有数据DB这样的事情如何找到mongodb中的前5个值?不应该包含相同的值
[
{ Appname:ktr, softcount:10 ,timeStamp:1 },
{ Appname:rsr, soscount:8,timeStamp:2 },
{ Appname:ktr, softcount:9 ,timeStamp:3},
{ Appname:ssl, softcount:6,timeStamp:4},
{ Appname:ktr, softcount:7,timeStamp:5 },
{ Appname:ppr, softcount:5,timeStamp:6},
{ Appname:crs, softcount:4,timeStamp:7 },
............
]
这里Appname
键将包含未知值的值。 Appname
可能是任何东西。
我需要根据TIMERANGE找到前5 softcount纪录,太不应该包含相同的Appname
要找到顶级的5个值,我已经使用这个查询
db.collection.find({timeStamp : { $gte : startTime, $lte :endTime}}).sort({'softcount':-1}).count(5)
这里开始时间是1和endTime是7
它是给予前5 softcount
记录但记录包含相同Appname
。所以
我想要的结果是这样的,从数据库
[
{Appname:ktr,softcount:10,timeStamp:1},
{Appname:rsr,softcount:8,timeStamp:2},
{Appname:ssl,softcount:6,timeStamp:4},
{Appname:ppr,softcount:5,timeStamp:6},
{Appname:crs,softcount:4,timeStamp:7}
]
这个结果Appnames不一样它不包含相同的Appname
。
可以写mongodb查询吗?
什么是查询以上记录?
了解更多关于MongoDB的聚合框架,您忘了最后一个流水线阶段'{“$极限”:5}' – chridam
我没有,我发现他的“如何做组与第一“,而不是具体的解决方案,他可以管道,他可以设置限制等。 – libik