sql >> Base de Datos >  >> NoSQL >> MongoDB

Recuperando la longitud de una lista en MongoDB

Ahora, podría pensar en dos enfoques:

1) Uso del marco de agregación:

db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1}  } }  ]);

2) O puede agregar un campo al documento que contiene el recuento de entradas. Entonces, cada vez que inserta un nuevo valor en la matriz de entradas, debe incrementar el contador. La actualización será así:

db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })

Claramente, aquí tiene una compensación:el marco de agregación es demasiado costoso para esta operación simple. Pero al agregar un campo al documento, cada actualización debería incrementar el contador.

En mi humilde opinión, el contador parece más razonable, aunque parece una solución alternativa.