【发布时间】:2021-12-03 09:19:12
【问题描述】:
我对这个话题很困惑。最初,我计划我的数据库时没有任何“排序”字段,并且只会按照我想要的顺序将值推送到数组中。一切都很好,直到有一天我的一个集合数组被随机洗牌。
关于 MongoDB 是否在数组中保持顺序,Google 给了我很多有争议的信息。
为了使它更加混乱$push 有$sort 修饰符。我不明白为什么它会在那里,除非数组实际上保持持久性(但我的实践告诉我它们不是!)。当数组可以在任意时间随机打乱时,为什么有人想按特定顺序将值推送到数组中?
另外,在数据库中保持订单的最佳方式是什么?我最终添加了order 字段。但问题是我的文档有很多嵌套(和子嵌套)文档,需要按特定顺序呈现。据我所知,在嵌套数组中排序项目的唯一方法是使用聚合:unwind -> sort -> group。但是,如果我有很多需要排序的字段,那看起来需要很多步骤。也许在查询文档后对其进行排序会更好?
【问题讨论】: