【问题标题】:Is hint({$natural: 1}) redundant when using a tailable cursor?使用可尾游标时,hint({$natural: 1}) 是多余的吗?
【发布时间】:2014-12-21 19:10:23
【问题描述】:

在我发现的许多在上限集合上使用可尾游标的示例中,代码包括:

hint( { $natural: 1 } )

(例如here),包括官方文档(here),以“确保我们不使用任何索引”,并以自然(即磁盘)顺序返回结果。

但是,文档还建议这是可尾光标的默认行为:

Tailable 游标不使用索引并以自然顺序返回文档。

所以使用hint 是多余的

我尝试查看带有和不带有 hintexplain() 的输出,据我所知,没有区别。

【问题讨论】:

  • 我能想到的唯一解释是如果你有一个索引,由于尾部必须使用自然顺序,所以必须指定提示以避免使用其他索引。
  • @joao 我本来是这么想的,但是文档说:“可尾游标不使用索引”...

标签: mongodb capped-collections


【解决方案1】:

是的。

有时您可能想要做的是以相反的自然顺序返回结果(最后插入的文档首先被返回。您可以通过以下方式实现:

db.cappedCollection.find().sort({$natural:-1})

有效地将上限集合的 FIFO 特性更改为 LIFO 特性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 2014-02-11
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2012-04-02
    • 2016-01-07
    • 2018-04-14
    相关资源
    最近更新 更多