【问题标题】:MongoDB persisting order of nested documents in arrayMongoDB在数组中保持嵌套文档的顺序
【发布时间】:2021-12-03 09:19:12
【问题描述】:

我对这个话题很困惑。最初,我计划我的数据库时没有任何“排序”字段,并且只会按照我想要的顺序将值推送到数组中。一切都很好,直到有一天我的一个集合数组被随机洗牌。

关于 MongoDB 是否在数组中保持顺序,Google 给了我很多有争议的信息。

为了使它更加混乱$push$sort 修饰符。我不明白为什么它会在那里,除非数组实际上保持持久性(但我的实践告诉我它们不是!)。当数组可以在任意时间随机打乱时,为什么有人想按特定顺序将值推送到数组中?

另外,在数据库中保持订单的最佳方式是什么?我最终添加了order 字段。但问题是我的文档有很多嵌套(和子嵌套)文档,需要按特定顺序呈现。据我所知,在嵌套数组中排序项目的唯一方法是使用聚合:unwind -> sort -> group。但是,如果我有很多需要排序的字段,那看起来需要很多步骤。也许在查询文档后对其进行排序会更好?

【问题讨论】:

    标签: arrays mongodb


    【解决方案1】:

    好的,经过大量谷歌搜索并与 MongoDB Atlas 支持人员交谈后,我可以确认 MongoDB 中的数组确实保留了它们的顺序。很可能我们在应用层上遇到了一个错误,导致数组混乱。

    【讨论】:

      猜你喜欢
      • 2021-05-01
      • 1970-01-01
      • 2017-03-03
      • 2017-04-28
      • 2019-10-09
      • 2018-03-09
      • 2018-06-03
      • 2021-07-09
      • 2019-05-10
      相关资源
      最近更新 更多