Mongodb 如何对聚合结果的每个文档中存在的文档数组进行排序?
我有一个名为Mongodb 如何对聚合结果的每个文档中存在的文档数组进行排序?,mongodb,sorting,aggregation-framework,Mongodb,Sorting,Aggregation Framework,我有一个名为event的集合 我有一个聚合查询,如下所示 db.event.aggregate([ {“$group”:{ “_id”:{ “UserId”:“$TracInfo.UserId”, “SessionId”:“$TracInfo.SessionId” }, “EventName”:{“$push”:{ “名称”:“$Name”, “时间”:“$Timestamp” }} }}, {“$out”:“演示”} ]) 其产出如下: { “结果”:
event
的集合
我有一个聚合查询,如下所示
db.event.aggregate([
{“$group”:{
“_id”:{
“UserId”:“$TracInfo.UserId”,
“SessionId”:“$TracInfo.SessionId”
},
“EventName”:{“$push”:{
“名称”:“$Name”,
“时间”:“$Timestamp”
}}
}},
{“$out”:“演示”}
])
其产出如下:
{
“结果”:[
{
“_id”:{
“用户ID”:“pawan”,
“会话ID”:“q69lIFHcpsCRgxtbJu1v”
},
“事件名称”:[
{
“名称”:“已删除房屋地图”,
“时间”:数字长(“1336090020090”)
},
{
“名称”:“屏幕停止”,
“时间”:数字长(“1336090020010”)
},
{
“名称”:“设置已更改”,
“时间”:数字长(“1336090020030”)
},
{
“名称”:“已删除房屋地图”,
“时间”:数字长(“1336090020100”)
},
{
“名称”:“屏幕已启动”,
“时间”:数字长(“1336090020330”)
},
...
},
...
]
}
我想按时间值对结果中每个文档的EventName数组进行排序
有什么办法吗
我试过了
{$sort:{“EventName.Time”:1}
但它不起作用。在将时间戳推入数组之前对其进行排序。在将时间戳推入数组之前对其进行排序。在将时间戳推入数组之前对其进行排序。首先确保时间戳上有索引,以避免性能受到影响 其次,使用此聚合:
db.event.aggregate([
{ $sort: { Timestamp:1 } },
{ $group:
{ _id:{"UserId":"$TracInfo.UserId","SessionId":"$TracInfo.SessionId"},
EventName:{$push:{"Name":"$Name","Time":"$Timestamp"}}}},
{$out:"demo"}
])
首先确保时间戳上有索引,以避免性能受到影响 其次,使用此聚合:
db.event.aggregate([
{ $sort: { Timestamp:1 } },
{ $group:
{ _id:{"UserId":"$TracInfo.UserId","SessionId":"$TracInfo.SessionId"},
EventName:{$push:{"Name":"$Name","Time":"$Timestamp"}}}},
{$out:"demo"}
])
首先确保时间戳上有索引,以避免性能受到影响 其次,使用此聚合:
db.event.aggregate([
{ $sort: { Timestamp:1 } },
{ $group:
{ _id:{"UserId":"$TracInfo.UserId","SessionId":"$TracInfo.SessionId"},
EventName:{$push:{"Name":"$Name","Time":"$Timestamp"}}}},
{$out:"demo"}
])
首先确保时间戳上有索引,以避免性能受到影响 其次,使用此聚合:
db.event.aggregate([
{ $sort: { Timestamp:1 } },
{ $group:
{ _id:{"UserId":"$TracInfo.UserId","SessionId":"$TracInfo.SessionId"},
EventName:{$push:{"Name":"$Name","Time":"$Timestamp"}}}},
{$out:"demo"}
])
在将其推入阵列之前对其进行排序在将其推入阵列之前对其进行排序在将其推入阵列之前对其进行排序在将其推入阵列之前对其进行排序