【发布时间】:2016-08-26 04:36:49
【问题描述】:
假设我的收藏中有以下文档:
var data = [
{ myArray: [ { a:1 }, { a:45 }, { a:46 } ] },
{ myArray: [ { a:3 } ] },
{ myArray: [ { a:12 }, { a:3 } ] },
{ myArray: [ { a:14 }, { a:33 }, { a:66 } ] }
]
我想根据“myArray”中最后两个“a”值的差异对它们进行排序。
所以算法应该是:
1) 拒绝 myArray 长度 的任何文档
var result = [
{ myArray: [ { a:1 }, { a:45 }, { a:46 } ] },
{ myArray: [ { a:12 }, { a:3 } ] },
{ myArray: [ { a:14 }, { a:33 }, { a:66 } ] }
]
2) 找出最后两个“a”值的差异
var result = [
{ myArray: [ { a:1 }, { a:45 }, { a:46 } ], diff: 1 },
{ myArray: [ { a:12 }, { a:3 } ], diff: -9 },
{ myArray: [ { a:14 }, { a:33 }, { a:66 } ], diff: 33 }
]
3) 按“差异”排序
var result = [
{ myArray: [ { a:14 }, { a:33 }, { a:66 } ], diff: 33 },
{ myArray: [ { a:1 }, { a:45 }, { a:46 } ], diff: 1 },
{ myArray: [ { a:12 }, { a:3 } ], diff: -9 }
]
4) 返回结果
【问题讨论】:
标签: javascript mongodb sorting mongodb-query aggregation-framework