2014-12-21 6 views
11

Sto tentando di aggiornare per aggiornare due array separati in un documento con una chiamata di aggiornamento. C'è un modo per fare questo?Invio a due array separati in una chiamata di aggiornamento in mongodb

Per esempio se ho un documento simile:

{ 
    _id:1, 
    array1:[1], 
    array2:[4] 
} 

In questo momento sto facendo questo:

db.collection.update({_id:1},{$push:{array1:"2"}}) 
db.collection.update({_id:1},{$push:{array2:"5"}}) 

C'è un modo per ridurre questo ad una sola chiamata? Ho provato a passare un array per spingere, ho provato più istruzioni push nell'oggetto di aggiornamento, ma quelle non funzionano. Grazie per il tuo aiuto con questo!

+0

Hai provato 'db.collection.update ({_ id: 1}, {$ push: {array1: "2"}, $ push: {array2: "5"}}) '? E perché spingi interi come stringhe? –

risposta

11

È possibile specificare più campi al $push all'operatore

db.collection.update(
    { _id :1 }, 
    { $push : { array1 : "1", array2 : "5" }} 
)