Mongoengine什么时候重建索引?

When Mongoengine rebuild indexes?

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

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

问题是:

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