当Mongoengine重建索引?

时间:2016-02-16 16:11:43

标签: python mongodb mongoengine

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

  • 当mongoengine更新它?
  • 他们如何跟踪变化?

1 个答案:

答案 0 :(得分:1)

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

问题是:

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