2012-04-19 42 views

Respuesta

4

No, no puedes hacer eso. No puedes usar expresiones en las actualizaciones de mongodb. La única forma es buscar este documento en el cliente, componer el nuevo valor de campo allí y emitir una declaración de actualización preparada.

+3

(* Esto me hizo pensar: ¿por qué es lo que no debería ser demasiado difícil de implementar referencias de campo simples No, No, No debería'. Pienso en eso, tengo trabajo que hacer. *) –

2

Como lo mencionó Sergio, no puede hacer esto incluso un año después de que se formuló la pregunta con la versión 2.4.8. Pero si usted necesita para hacer esto, puede utilizar esta

db.yourCollection.find({}).forEach(function(doc) { 
    doc.F1 = doc.F1 + ", " + doc.F2; 
    delete doc.F2; 
    db.yourCollection.save(doc); 
}); 
+0

En realidad, golpeo otras paredes con MongoDB, más serio que eso. Al final, tomé la dolorosa decisión de migrar mi back end de MongoDB a PostgreSQL. – mark

+0

¿Puedes describir tus problemas? Puede ser útil que otros aprendan de sus errores :-) –

+1

** B-Trees sin conteo. ** Necesito generar informes con recuentos de registros que cumplan varios criterios. Es sorprendente. ** Campos opcionales únicos ** Tengo algunos campos que son únicos si no nulos, pero puede haber muchos registros con valores nulos allí. La forma en que mongo indexa dichos campos hace que sea imposible buscar registros con el valor nulo allí; debe usar valores indirectos no nulos, lo cual es realmente difícil de mantener. ** Salvaje en la memoria ** MongoDB es un servidor orientado al servidor, no tolera ninguna otra aplicación que se ejecute, ya que por su propio diseño se necesita toda la memoria RAM. – mark

Cuestiones relacionadas