2012-04-30 14 views

Respuesta

8

Si usted tiene una colección MongoDB llamado yourCollection y un registro con el nombre x, actualizaría la subserie con algo como esto:

db.test. actualización ({ "name": "x"}, { "$ pushAll": {arr: [1, 2, 3]}})

La palabra clave aquí es importante $pushAll. Puede usarlo para agregar elementos a matrices dentro de un solo atributo de registro.

+2

Está obsoleto desde la versión 2.4 en adelante. Use $ cada uno en su lugar –

1

Si desea actualizar varios registros, es importante pasar true como el cuarto argumento de la función de actualización:

db.test.update({"name": "x"}, {"$pushAll": {"arr": [1, 2, 3]}}, false, true) 

por la sintaxis consola MongoDB para la actualización():

db.collection.update(criteria, objNew, upsert, multi) 
  • upsert - si el registro (registros) no existe, inserte uno. Upsert sólo se inserta un solo documento
  • mutli - indica si todos los documentos coinciden con los criterios deben ser actualizados en lugar de sólo uno
1

el enfoque más simple es el uso de una operación de actualización convencional

db.urColl.update(
    { x: "h" }, 
    { $push: { arr: { $each: [6,8] } } }, 
    { multi: true } 
);` 
0

$pushAll
En desuso desde la versión 2.4: utilice el operador $push con $each en su lugar. El operador $pushAll agrega los valores especificados a una matriz.

$pushAll El operador tiene la forma:

{ $pushAll: { <field>: [ <value1>, <value2>, ... ] } } 

Si especifica un solo valor, $pushAll se comportará como $push.

Cuestiones relacionadas