Node.js 如何在waterline中的一个查询中更新

Node.js 如何在waterline中的一个查询中更新,node.js,sails.js,waterline,Node.js,Sails.js,Waterline,在SQL中,我可以像这样使用内联计算更新字段- UPDATE user SET count=count+1 WHERE id=userID 它只需要一个数据库操作 但是,在waterline中,我现在唯一的选择是查询用户,更改值,然后保存回数据库 User.findOne(userID).exec(function(err, user) { if(user) { user.count++; user.save(function(err) {

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

UPDATE user SET count=count+1 WHERE id=userID
它只需要一个数据库操作

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

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

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

您可以使用waterline执行本机查询,这样我就可以走这条路了

User.query(“此处查询字符串”,函数(err,result){//Handle errors and result here})


但它实际上扼杀了水线的用途。如果我想更改数据库系统,该怎么办?Waterline将永远无法跟上所有形式的查询执行,并且由于其适配器性质,连接到各种数据库,这些数据库处于不同的成熟度级别,您将始终遇到这些问题。事实上,水线包括帆船在他们的网站上的状态,以不回避。查询作为本机调用可能更适合检查。查询评论在这个链接。我现在明白了,谢谢。我想原生查询是我的唯一选择。这是唯一的方法,但我认为这没什么大不了的。一次可以找到多个条目并保存多个用户。