我希望为我的数据库调用创建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和{},但是它会减慢查询速度吗?
答案 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>