定义了所有参数的MongoDB性能

时间:2014-02-06 21:22:40

标签: mongodb collections database

我希望为我的数据库调用创建API,我想让它尽可能动态以适应所有模式。 我以为我可以这样做:

    function getUsers(query, projection, options, skip, limit, sort, callback){
       db.users.find(query, projection, options).skip(skip).limit(limit).sort(sort).toArray(function (err, res){
           callback(err, res);
       }
    }

但是这些值(跳过,限制,排序)不会每次都使用,所以我会将它们设置为默认值0,-1和{},但是它会减慢查询速度吗?

2 个答案:

答案 0 :(得分:1)

相反如何,不要担心默认值?

function getUsers(q, p, o, sk, l, so, c) {
    var cursor = db.users.find(q, p, o);
    if (sk) {
        cursor = cursor.skip(sk);
    }
    if (l) {
        cursor = cursor.limit(limit);
    }
    if (so) {
        cursor = cursor.sort(so);
    }
    return cursor.forEach(function (o) {
            return callback("not sure what to put here", o);
        });
}

答案 1 :(得分:0)

至于实际回答关于性能的问题,答案是否定的,如果你将null类型插入到其他参数中,MongoDB应将其视为默认值,因此忽略它,处理没有这些部分的查询。 / p>