2012-07-19 22 views

Respuesta

6

Prueba el $existsoperator:

$this->mongolib->update('people', array('age' => array('$exists' => false)), array('$set' => array('age' => 14)), array('upsert' => true, 'multiple' => true)); 
+0

¿No te lograr lo mismo si en la búsqueda de un valor nulo para la edad? – golja

+0

'$ exists' no coincidirá con' {age: null} ', pero la búsqueda donde la edad es nula coincidiría con los documentos sin campo de edad. Encuentro que el operador $ exists es un mejor indicador de intención. – MrKurt

+0

trabajado. ¡Gracias! – tpae

0

Tengo una forma indirecta que se me ocurre. Sugiero que use el comando de actualización normal, pero solo agregue una condición de expresión regular en sus criterios de selección para hacer coincidir solo aquellos documentos que no tienen un valor (o valor numérico) establecido para el atributo 'edad'.

Cuestiones relacionadas