请教一个mongodb查询的问题
-
一张表中有userName(用户名),location(坐标),createTime(坐标上传时间) 这3个字段,我想查询每个用户最后一次上传的坐标.即按用户名分组,每个用户一条数据(最后上传的坐标).请问这个查询怎么写啊?
-
db.collection.aggregate([
{$group:{ '_id':'$userName' , location':{$first:'$location'}}} ,
{$sort:{'createTime':0}}
])
或
db.collection.aggregate([
{$group:{ '_id':'$userName' , 'location':{$last:'$location'}}} ,
{$sort:{'createTime':1}}
])
-
建議先sort , 且 $sort 只能接 1 / -1 , 沒有 0
db.collection.aggregate([
{$sort:{ 'username' : 1 , 'createTime': 1}},
{$group:{ '_id':'$userName' , 'location':{$last:'$location'}}}
])
-
@stlin 抱歉~ 1/-1我記錯了~
想再請問在aggregate裡面 sort在前面後面是有差異的嗎?
-
感謝各位大神!!!...ORZ
-
@Amber Aggregate的pipeline應該是由上而下有順序的執行!
-
@PTL 了解 謝謝~