De forma predeterminada, mongo shell imprime solo los primeros 20 documentos, puede obtener el próximo lote de 20 documentos escribiendo Type itel shell. Y así.
@LukaszWiktor sí, puede crear un archivo $ HOME / .mongorc.js y poner esa configuración shellBatchSize allí. el mío tiene la configuración de tamaño de lote de consulta y rs.slaveOk () habilitado. su uso también es ligeramente diferente cuando se usa --eval a través de la línea de comandos. ver: docs.mongodb.com/manual/mongo/#mongorc-js-file
matias elgart
1
¡Eso es genial! Gracias @matiaselgart
Lukasz Wiktor
el enlace está desactualizado, no contiene dicha información. Además, ¿puedo pasar esto como una variable de entorno?
phil294
157
Desde el shell si desea mostrar todos los resultados que podría hacer db.collection.find().toArray()para obtener todos los resultados sin él.
Esta. Si solo los quiere en una concha para poder cortar y pegar, esto es suficiente.
superluminary
Este es más útil
anwerj
Esto es exactamente lo que hizo por mí. A decir verdad, solo necesitaba una forma de guardar todos los resultados de la salida de Robomongo. ¡Gracias!
Andrés Botero
Eso es genial, y también me permitió canalizar el resultado a jq :)
Omer van Kloeten
¡Solución perfecta! Hombre, esto es muy útil.
coderpc
93
Puede usar el itinterior del shell para iterar sobre los próximos 20 resultados. Simplemente escriba itsi ve "tiene más" y verá los próximos 20 elementos.
Me gusta de esta manera porque se puede ejecutar en script de shell (cliente mongo con --eval)
Zheng Kai
1
@ZhengKai si está utilizando un script y no en el shell, entonces shellBatchSize no es relevante ya que el shell no repetirá los resultados, tendrá que hacerlo usted mismo.
Asya Kamsky el
El tojson () era exactamente lo que estaba buscando para convertirlo de DBQuery, ¡gracias!
Mark Pieszak - Trilon.io
4
Le sugiero que tenga un ~/.mongorc.jsarchivo para que no tenga que establecer el tamaño predeterminado cada vez.
# execute in your terminal
touch ~/.mongorc.js
echo 'DBQuery.shellBatchSize = 100;'>~/.mongorc.js
# add one more line to always prettyprint the ouput
echo 'DBQuery.prototype._prettyShell = true; '>>~/.mongorc.js
En el shell mongo, si el cursor devuelto no está asignado a una variable usando la palabra clave var, el cursor se itera automáticamente para acceder a los primeros 20 documentos que coinciden con la consulta. Puede configurar la variable DBQuery.shellBatchSize para cambiar el número de documentos iterados automáticamente.
Type it
el shell. Y así.Respuestas:
lo haré
Documentos de MongoDB - Configure el mongo Shell - Cambie el tamaño del lote mongo Shell
fuente
Desde el shell si desea mostrar todos los resultados que podría hacer
db.collection.find().toArray()
para obtener todos los resultados sin él.fuente
Puede usar el
it
interior del shell para iterar sobre los próximos 20 resultados. Simplemente escribait
si ve "tiene más" y verá los próximos 20 elementos.fuente
it
Siempre podría hacer:
Para obtener esa vista compacta.
Además, me resulta muy útil limitar los campos devueltos por find así:
que devolvería solo el campo _id y nombre de foo.
fuente
--eval
)Le sugiero que tenga un
~/.mongorc.js
archivo para que no tenga que establecer el tamaño predeterminado cada vez.Para saber más sobre qué más puede hacer, le sugiero que consulte este artículo: http://mo.github.io/2017/01/22/mongo-db-tips-and-tricks.html
fuente
En el shell mongo, si el cursor devuelto no está asignado a una variable usando la palabra clave var, el cursor se itera automáticamente para acceder a los primeros 20 documentos que coinciden con la consulta. Puede configurar la variable DBQuery.shellBatchSize para cambiar el número de documentos iterados automáticamente.
Referencia: https://docs.mongodb.com/v3.2/reference/method/db.collection.find/
fuente