【问题标题】:When Mongoengine rebuild indexes?Mongoengine什么时候重建索引?
【发布时间】:2016-02-16 16:11:42
【问题描述】:

当 Mongoengine 重建(更新)有关索引的信息时?我的意思是,如果添加或更改某些字段(添加唯一性或稀疏选项到归档)或在模型声明中添加一些元信息。 所以问题是:

  • mongoengine 什么时候更新?
  • 他们如何跟踪更改?

【问题讨论】:

  • 见 stackoverflow.com/a/9082609/3271558 - 我已经检查过了,从 v 0.9.0 开始仍然如此
  • @SteveRossiter 谢谢,伙计。但是删除后什么时候会重新创建呢?任何信息? :)

标签: python mongodb mongoengine


【解决方案1】:

Mongoengine 不会自动重建索引。 Mongoengine 跟踪模型中的更改(顺便说一句,如果您将 sparse 添加到您的文件中(如果字段没有 unique 选项),则不会工作)然后在 mongoDB 中触发 ensureIndex。但是当它着火时 - 确保你在 mongoDB 中手动删除最旧的索引版本(Mongoengine 没有)。

问题是:

  • 如果您将sparse 添加到没有unique 选项的归档中 - 这更改不会映射到 mongoDB 索引中。你需要结合unique = True, sparse = True
  • 如果您更改模型中的索引 - 您需要手动删除 mongoDB 中的旧索引。

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 2013-06-21
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多