我有很多集合,它们都有相同的字段,我想索引。我可以使用以下命令执行顺序索引:
db = db.getSiblingDB('mydb'); db.getCollectionNames().forEach(function (collectionName) { db.collectionName.createIndex( { orderDate: 1, zipcode: -1 } ) });
我想知道是否有可能在类似的脚本并行创建索引。谢谢你。
sbdsn5lh1#
在任何数据库中,索引生成都不是内部顺序的。您可以考虑两种情况:1.您的收藏为空。在这种情况下,不需要索引任何数据。因此createIndex命令只需要创建一个索引定义,以备将来使用(写操作)。1.您的收藏已填充。在这种情况下,将创建索引定义,索引过程将在后台启动,并且当集合中的所有数据都被索引时,只有在那时索引才会被标记为可供使用。因此,即使你调用createIndex,在这里迭代:
createIndex
在索引中填充数据的过程在后台完成。因此,如果触发多个这样的命令,它们的数据将在后台并行填充。在这里阅读更多关于索引构建的信息。Create Index MongoDB.
1条答案
按热度按时间sbdsn5lh1#
在任何数据库中,索引生成都不是内部顺序的。您可以考虑两种情况:
1.您的收藏为空。在这种情况下,不需要索引任何数据。因此
createIndex
命令只需要创建一个索引定义,以备将来使用(写操作)。1.您的收藏已填充。在这种情况下,将创建索引定义,索引过程将在后台启动,并且当集合中的所有数据都被索引时,只有在那时索引才会被标记为可供使用。
因此,即使你调用
createIndex
,在这里迭代:在索引中填充数据的过程在后台完成。因此,如果触发多个这样的命令,它们的数据将在后台并行填充。
在这里阅读更多关于索引构建的信息。Create Index MongoDB.