如何在水线中的一个查询中更新
How to update in one query in 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) {
if(!err) console.log("success");
});
}
});
它需要双重数据库访问。我怎样才能减少开销?
您可以使用 waterline 执行本机查询,所以我会走那条路。
User.query("query string here", function (err,result){//Handle errors and result here});
http://sailsjs.org/documentation/reference/waterline-orm/models/query
在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("query string here", function (err,result){//Handle errors and result here});
http://sailsjs.org/documentation/reference/waterline-orm/models/query