如何使用Bookshelf.js模型进行原子更新?

时间:2015-06-28 03:49:39

标签: node.js bookshelf.js

例如,如果我想在MySQL查询中执行以下操作:

update foo set bar = bar + ?;

我如何使用Bookshelf.js模型实现这一目标?

2 个答案:

答案 0 :(得分:4)

我不确定你的意思是原子,也许交易?你可以在书架上做到这一点,有关于它的整个部分:http://bookshelfjs.org/#Bookshelf-transaction

但是,如果您只是尝试更新字段,则可以按照以下方式轻松完成:

var idStationIWantToUpdate = 1;
new Station({'id': idStationIWantToUpdate}).save({
    route_name: 'my updated route name'
}).then(function(station) {
    res.json(station.toJSON());
});

重要的是您使用相应的ID实例化模型,然后当您调用save时,它会自动更新现有记录。

答案 1 :(得分:2)

我无法按预期工作,但knex查询构建器库(http://knexjs.org/#Builder-increment)中有一个>>> User.objects.create(username=u"___", email="lorem@example.com")方法,这是bookshelf.js中此功能的基础引擎

我最终做的是:

increment