【问题标题】:Does default find() implicitly sort by _id? [duplicate]默认 find() 是否按 _id 隐式排序? [复制]
【发布时间】:2017-04-15 01:07:53
【问题描述】:

默认 find() 是否隐式按 _id 排序?

换句话说,下面列出的 2 行 mongo 是否等效?

db.collection.find().sort( { "_id" : 1 } )

db.collection.find()

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    如果没有定义sort,则游标使用自然顺序。

    https://docs.mongodb.com/manual/reference/method/cursor.sort/#return-natural-order

    结果排序

    除非你指定 sort() 方法或使用 $near 运算符,否则 MongoDB 不保证查询结果的顺序。

    回归自然

    $natural 参数根据它们在数据库中的自然顺序返回项目。此排序是内部实现功能,您不应依赖其中的任何特定结构。

    大部分时间是插入顺序,但这并不能保证。

    【讨论】:

    • 所以,find()find().sort( { "$natural": 1 } ) 相同
    • @llllll 是的,如文档所述。
    猜你喜欢
    • 2010-10-09
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多