mgo是否具有根据查询结果对每个文档的特定“切片”字段进行排序的功能?

时间:2018-08-07 16:43:39

标签: go mgo

我不是在谈论如何对result进行排序。我知道!
这是result中我要按特定顺序排序的字段之一。
假设我们有一个{@ {1}}由mgo查询返回:

result := []A{}

在那个type A struct { I string II []B } type B struct { X string XX int } 中,我希望每个result都按B.XX排序

我要问的是我可以通过mgo进行这种处理吗?还是不得不在result[i].II上循环并对result进行自我切片?

1 个答案:

答案 0 :(得分:0)

有一种使用聚合引擎的​​方法。

  1. $匹配您想要的文档
  2. $ project您想要的字段
  3. $展开切片
  4. 使用ID和展开值作为排序键对展开的切片进行$ sort
  5. 将排序后的slice元素$ group在一起