【发布时间】:2017-03-17 14:45:26
【问题描述】:
我正在试验 MongoDB 及其聚合框架。通过展开操作,我可以将具有数组字段的文档拆分为每个数组索引的多个文档。现在如果数组中的数据没有自然排序顺序,我该如何在 MongoDB 中对其进行排序?
例子:
产品集合具有以下文档(_id 字段省略)
{ "type" : "t-shirt", "size" : [ "S", "M", "L" ] }
{ "type" : "pants", "size" : [ "XS", "S", "M", "L", "XL" ] }
通过size字段展开收集数据后,结果为
{ "type" : "t-shirt", "size" : "S" }
{ "type" : "t-shirt", "size" : "M" }
{ "type" : "t-shirt", "size" : "L" }
{ "type" : "pants", "size" : "XS" }
{ "type" : "pants", "size" : "S" }
{ "type" : "pants", "size" : "M" }
{ "type" : "pants", "size" : "L" }
{ "type" : "pants", "size" : "XL" }
size 字段没有自然排序,例如 XL 和 XS 彼此相邻排序,尽管它们应该排序到第一个/最后一个位置。
我migth通过首先将每个尺寸投影到其对应的数字来解决这个问题,即 XS=1, S=2...但是有没有更简单的方法来执行自定义排序?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework mongodb-aggregation