2015-04-04 57 views
54

如何選擇或更新oriento中的多條記錄?像在水線我們可以選擇和更新oriento中的多條記錄和水線中的交易

offersModel.update({id:items_ids,status:INACTIVE},{status:ACTIVE}) 

但在水線交易不可用。所以我想用:

var db = offersModel.getDB(); 
var trans = db.begin(); 
    trans.update('offers') 
     .set({status:INACTIVE}) 
     .where({id:items_ids,status:ENM.SELLING_STATUS.ACTIVE})//.exec() 
     .then(function(offers){ 
      if (offers.length != items_ids.length) {trans.rollback(); /* send error here*/} 
      else trans.commit(); 
     }) 

謝謝。

+1

@達里奧沒有人回答這個問題。這個問題沒有意義嗎? – 9me 2015-04-05 19:29:51

+1

嗨@ 9me,也許東方人不會在這裏閒逛,你也可以試試[Oriento gitter channel](https://gitter.im/codemix/oriento)和[Oriento project](https:// github的.com/codemix/oriento)。關於你的例子:'.where({id:items_ids,status:ENM.SELLING_STATUS.ACTIVE})。exec()',你不需要'.then(/ * ..)之前的'.exec()'。 * /)'。 – 2015-04-07 13:47:24

+0

@Dário謝謝你的回覆。我很抱歉,我無法解釋我的用例。我的用例是'begin()然後更新項目,然後**如果有任何項目丟失** rollback()else commit()'我怎樣才能執行這個事務? – 9me 2015-04-08 12:12:28

回答

0

你試過了嗎?

db.update(id).set({status:INACTIVE}).scalar() 
+0

我還沒有嘗試過但我的問題主要與基於多於一個類的交易有關。 – 9me 2016-07-22 18:29:35

4

試試這個

db.update(ID).SET({狀態:閒置})。標量()

+0

怎麼樣多個ID和交易。如果失敗,我怎樣才能撤消這筆交易? – 9me 2016-06-25 07:54:23