在部署期间创建索引的正确方法

时间:2016-03-07 02:10:17

标签: node.js mongodb express

我正在创建一个expressjs api并使用mongodb。我对索引有一个很好的理解,我知道当数据库中有数据时,它们的创建成本很高。

在MS Sql Server中,您将在创建数据库表时创建索引。我的问题是我是否在我的快递应用程序的post调用中处理索引创建,还是在部署应用程序时使用脚本实现此目的?

例如,我需要地理空间索引。

是否会在快递应用中处理索引创建?

//express post call
let col = db.collection( 'collection' );
col.createIndex( // someIndex );
col.insertOne( //Some document );

我正在寻找创建'最初'的最佳方法。我的mongodb的状态,特别是在这些集合包含任何文档之前,我将需要某些集合。

1 个答案:

答案 0 :(得分:1)

所以,可能会发生这种情况,在部署时你的数据库中有很多数据,你不希望你的索引很糟糕。以下是MongoDB可以提供的帮助。您可以在后台进行索引,这不会阻止索引构建时对数据库的所有读写操作。简单的命令:

db.collection.createIndex( { a: 1 }, { background: true } )

检查手册有关详细信息。

  

https://docs.mongodb.org/manual/tutorial/build-indexes-in-the-background/