【问题标题】:How do I reference a field value when updating records using Waterline ORM使用 Waterline ORM 更新记录时如何引用字段值
【发布时间】:2014-10-04 16:04:00
【问题描述】:
我正在尝试使用嵌套集模型技术存储层次结构。我正在使用 Waterline ORM 作为节点来查询和更新我的数据库。如何使用 Waterline 对以下查询进行建模?
UPDATE MyTable SET counter=counter+2 WHERE id > 4 AND id
我知道 MyTable.update(...) 但我不确定如何在查询中引用现有列值。
【问题讨论】:
标签:
node.js
sails.js
waterline
【解决方案1】:
目前无法在 Waterline update 查询中引用现有字段值,尽管该功能肯定已被讨论过。
同时,如果您不想遵循两步流程(MyTable.find 后跟一个循环,.save() 针对每个实例),那么您需要使用本机 DB 方法来完成此操作.对于sails-mysql 和sails-postgresql 适配器,这意味着使用.query():
MyTable.query("UPDATE MyTable SET counter=counter+2 WHERE id > 4 AND id < 17",
function(err, results) {...});
对于sails-mongo适配器,类似的方法是.native()。