【问题标题】:Mongo DB sort behaviorMongodb排序行为
【发布时间】:2019-07-24 07:03:29
【问题描述】:

假设我们有一组发票,并且我们按销售日期查询和排序。

当然可以在同一日期有许多发票。

Mongo 是否提供任何保证同一日期的发票顺序一致?

例如它是否还提供了say _id 的默认排序,或者该行为被描述为未定义?

如果要多次运行相同的查询,同一日期的发票是否每次都以相同的顺序出现? 或者是否由开发人员也提供辅助排序属性,例如。 _ID。 ?

对我来说,它看起来是一致的,但我真的可以指望它吗?

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    1.Mongo是否保证同一日期的发票顺序一致?

    Yes, results will be consistent all the time

    1. 它是否还提供了默认排序,比如 _id,还是描述为未定义的行为?

    By default all records will be sorted by `_id`, that's why i can say Yes to your first question.

    1. 如果要多次运行相同的查询,同一日期的发票是否每次都以相同的顺序出现?

    yes, always

    1. 是否也由开发人员提供辅助排序属性,例如。 _ID。 ?

    yes

    对于我的实验结果,请查看随附的屏幕截图。

    【讨论】:

    • 你确定这是对的吗? This 可能会改变你的想法
    • 未定义具有相同排序键的结果顺序(例如,相同的销售日期)。具有相同销售日期的发票 1、2 和 3 可以按任何顺序出现,并且根据“销售日期”的排序标准仍然是正确的。为了保证排序顺序,您需要一个唯一的排序键(例如,销售日期加上发票编号)。 MongoDB 服务器返回的结果的自然顺序也是undefined。如果该工具添加排序顺序,您使用 UI 工具进行的实验测试可能会描述结果,但这不是默认行为。
    • 是的,我认为结果可能是由于 UI 工具而达到预期的结果。
    猜你喜欢
    • 2020-06-25
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2014-10-17
    • 1970-01-01
    • 2014-05-08
    • 2016-02-28
    相关资源
    最近更新 更多