2015-04-04 9 views
54

Come posso selezionare o aggiornare più record in Oriento? Come nella linea di galleggiamento possiamoSELEZIONA e AGGIORNA più record in oriento/orientjs e transazione nella linea di galleggiamento

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

Ma nella transazione di linea di galleggiamento non è disponibile. Quindi voglio usare:

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(); 
     }) 

Grazie.

+1

@ Dário nessuno sta rispondendo a questa domanda. Questa domanda non è significativa? – 9me

+1

Ciao @ 9me, forse gli Oriento non si fermano qui, puoi anche provare [Oriento gitter channel] (https://gitter.im/codemix/oriento) e il [Oriento project] (https: // github .com/codemix/oriento). Per quanto riguarda il tuo esempio: '.where ({id: items_ids, stato: ENM.SELLING_STATUS.ACTIVE}). Exec()', non è necessario un '.exec()' prima di un '.then (/ * .. . * /) '. –

+0

@ Dário Grazie per la risposta. mi dispiace non posso spiegare il mio caso d'uso. Il mio caso d'uso è 'begin() quindi aggiorna gli elementi poi ** se manca qualche elemento ** rollback() else commit()' Come posso eseguire questa transazione? – 9me

risposta

0

Hai provato a seguire?

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

Non l'ho ancora provato ma la mia domanda riguarda principalmente la transazione basata su più di una classe. – 9me

4

Prova questa

db.update (id) .set ({Stato: inattivo}). Scalare()

+0

Che dire di più ID e transazioni. In caso di esito negativo, come posso annullare questa transazione? – 9me

Problemi correlati