例如,我有这些文件:
{
"addr": "address1",
"book": "book1"
},
{
"addr": "address2",
"book": "book1"
},
{
"addr": "address1",
"book": "book5"
},
{
"addr": "address3",
"book": "book9"
},
{
"addr": "address2",
"book": "book5"
},
{
"addr": "address2",
"book": "book1"
},
{
"addr": "address1",
"book": "book1"
},
{
"addr": "address15",
"book": "book1"
},
{
"addr": "address9",
"book": "book99"
},
{
"addr": "address90",
"book": "book33"
},
{
"addr": "address4",
"book": "book3"
},
{
"addr": "address5",
"book": "book1"
},
{
"addr": "address77",
"book": "book11"
},
{ …Run Code Online (Sandbox Code Playgroud) 我经常研究一些JavaScript面试问题,突然间我看到一个关于使用reduce函数进行排序的问题Array,我在MDN中读到了它并在一些medium文章中使用它,但排序Array是如此创新:
const arr = [91,4,6,24,8,7,59,3,13,0,11,98,54,23,52,87,4];
Run Code Online (Sandbox Code Playgroud)
我想了很多,但我不知道如何回答这个问题,这个reduce call back功能一定是怎么回事?是什么initialValue的reduce功能?什么是accumulator和currentValue的call back功能reduce?
最后,这种方式是否比其他排序算法有一些好处?或者改进其他算法是否有用?
我有以下文件结构......
{
"id":"documentID"
"sessionId":"sometext"
"msg":"sometext"
"time":"date"
}
Run Code Online (Sandbox Code Playgroud)
我想聚合文档sessionId,每个会话的结果应该包含与按时间排序的会话相关的消息集.
使用MongoDB聚合框架我该如何实现?
我试图先排序然后分组,但每个会话中的消息由于某种原因没有排序:
{ $sort: { "time": 1 } },
{ "$group" : {
"_id" : "$sessionId",
"msgs" : { "$addToSet" : "$msg" }
} }
Run Code Online (Sandbox Code Playgroud)
有什么建议?你的回答非常感谢.