如何在MongoDB中正确创建索引以搜索整个一个集合?

时间:2020-11-07 06:05:28

标签: javascript node.js regex mongodb mongodb-query

我有一个名为people的收藏集,该收藏集几乎有 100k documents ..

虽然我是前端开发人员,但我不知道如何提高搜索性能。

我的搜索如下:

const phoneNumbers = [
   { "phone": { "$regex": `1` } },
   { "phone": { "$regex": `2` } },
   { "phone": { "$regex": `3` } },
   { "phone": { "$regex": `4` } },
   { "phone": { "$regex": `5` } },
   { "phone": { "$regex": `xxx` } },
   { "phone": { "$regex": `999` } },
   { "phone": { "$regex": `1000` } },
];


peopleCollection.find({$or: phoneNumbers}).toArray((error, matchedDocs)=> {
   // returning matched docs
});

您可以看到我的搜索结构,您对创建index有何建议?

创建索引是否有帮助? 如果是,我如何创建适当的索引

1 个答案:

答案 0 :(得分:0)

建立索引不会降低搜索表达式的复杂度,而是可以帮助数据库更快地找到匹配结果(即降低时间复杂度)。

以下是创建索引的方法:

db.collectionName.createIndex(key_name)

上述单行操作会在键键名上创建索引。