如何快速搜索mongodb集合

时间:2017-10-17 10:29:30

标签: mongodb

目前,我使用此代码搜索第一个可能的' slug'基于字符串。这是递归的,所以,当他发现一个可能的slu ..时,它会停止。

function determineProductSlug(name, count, callback){
    var nameSlug = name;
    if(count > 0){
        nameSlug = name + '-' + count;
    }

    Product.find({'en.nameSlug': nameSlug}).sort({_id: -1}).exec(function(err, product){
        if(err){
            return callback(err);
        }
        if(product.length == 0){
            return callback(null, nameSlug);
        }else{
            count = count+1;
            return determineProductSlug(name, count, callback);
        }
    })
}

但是,它变得非常缓慢。我们现在已经收集了大约10.000个文档,但是还会有更多文档。

如何加快此功能/查询的运行速度?我已经尝试了sort({id: -1}),但这似乎没有帮助。

1 个答案:

答案 0 :(得分:1)

如果您有权这样做,提高性能的一种方法是在en.nameSlug上创建索引。索引是保存在内存中的二叉树,这是最快的查找方式。索引可以降低写入性能,但你会知道最重要的是读取还是写入。