我正在创建一个expressjs api并使用mongodb。我对索引有一个很好的理解,我知道当数据库中有数据时,它们的创建成本很高。
在MS Sql Server中,您将在创建数据库表时创建索引。我的问题是我是否在我的快递应用程序的post
调用中处理索引创建,还是在部署应用程序时使用脚本实现此目的?
例如,我需要地理空间索引。
是否会在快递应用中处理索引创建?
//express post call
let col = db.collection( 'collection' );
col.createIndex( // someIndex );
col.insertOne( //Some document );
我正在寻找创建'最初'的最佳方法。我的mongodb的状态,特别是在这些集合包含任何文档之前,我将需要某些集合。
答案 0 :(得分:1)
所以,可能会发生这种情况,在部署时你的数据库中有很多数据,你不希望你的索引很糟糕。以下是MongoDB可以提供的帮助。您可以在后台进行索引,这不会阻止索引构建时对数据库的所有读写操作。简单的命令:
db.collection.createIndex( { a: 1 }, { background: true } )
检查手册有关详细信息。
https://docs.mongodb.org/manual/tutorial/build-indexes-in-the-background/