如何在水线中的一个查询中更新

时间:2016-06-12 01:33:44

标签: node.js sails.js waterline

在SQL中,我可以像这样使用内联计算更新字段 -

UPDATE user SET count=count+1 WHERE id=userID

它只需要一个数据库操作。

但是,在水线中,我现在唯一的选择是查询用户,更改值,然后保存回数据库。

User.findOne(userID).exec(function(err, user) {
    if(user) {
        user.count++;
        user.save(function(err) {
             if(!err) console.log("success");
        });
    }
});

它需要双重数据库访问权限。如何减少开销?

1 个答案:

答案 0 :(得分:1)

你可以用水线执行原生查询,所以我会走那条路。

User.query("query string here", function (err,result){//Handle errors and result here});

http://sailsjs.org/documentation/reference/waterline-orm/models/query