Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

991
Vistas
Canalice la salida de mongosh MongoDB Shell al archivo de salida (Windows)

Estoy usando la herramienta mongosh actual para ejecutar consultas de Mongo que pueden devolver conjuntos de resultados muy grandes, que podrían no caber en el búfer del símbolo del sistema (e incluso si lo hicieran, copiar dichos resultados a mano llevaría mucho tiempo y sería propenso a errores) . Por lo tanto, me gustaría tener la capacidad de:

  • canalizar la salida de mongosh a un archivo de texto, y
  • también pase un script o consulta de Mongo para ejecutar desde la línea de comando

Aquí está el comando que estoy ejecutando actualmente (detalles enmascarados):

 mongosh "mongodb://10.20.30.40:26017" --username my_username --password my_password --authenticationDatabase my_database > output.txt

Esta es la salida actual que veo en output.txt :

 Current sessionID: 1ee96e0f6025ec328ea25ccc Connecting to: mongodb://10.20.30.40:26017 Using MongoDB: 3.4.13 Using Mongosh Beta: 0.0.6 For more information about mongosh, please see our docs: https://docs.mongodb.com/mongodb-shell/ [1G[0J> [3G

Entonces parece que la redirección al archivo de salida está funcionando. Sin embargo, parece que no puedo entender cómo especificar un script de Mongo con una consulta real a la herramienta de línea de comandos. Por ejemplo, si quisiera especificar la siguiente consulta de conteo simple, ¿cómo lo haría?

 db.getCollection('my_collection').count();

Idealmente, me gustaría que output.txt solo tenga una sola línea con el recuento de esta colección.

La herramienta de línea de comandos anterior de mongo parecía tener varias formas de canalizar una consulta, por ejemplo, especificando un script o usando la opción --eval . La documentación de mongosh afirma que esta herramienta está en modo Beta y admite algún subconjunto de la funcionalidad de mongo . ¿Es compatible con la capacidad de pasar una consulta?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Mientras tanto, esto también funciona con el nuevo mongosh , asegúrese de descargar la última versión (1.1.9 o más reciente)

 echo "db.getCollection('my_collection').countDocuments({});" | mongosh --norc --quiet > output.txt mongosh --norc --quiet > output.txt <<EOF db.getCollection('my_collection').countDocuments({}); EOF mongosh --norc --quiet --eval "db.getCollection('my_collection').countDocuments({})" > output.txt

Tenga en cuenta que con el shell mongo clásico recibe esta advertencia:

 ================ Warning: the "mongo" shell has been superseded by "mongosh", which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in an upcoming release. We recommend you begin using "mongosh". For installation instructions, see https://docs.mongodb.com/mongodb-shell/install/ ================

lo cual no es cierto en mi opinión, todavía no veo a new mongosh como sucesor de mongosh . Pero tengo que admitir que cada vez es mejor.

La única forma de deshacerse de esta advertencia es la opción --eval .

over 4 years ago · Santiago Trujillo Denunciar

0

Lo siguiente funciona en mongo (todavía tengo que probarlo con mongosh)

 mongo --eval "db=db.getSiblingDB('DB NAME'); printjson(db.COLLECTION.findOne())" > output.txt --quiet

Entonces el tuyo se convertiría en:

 mongo "mongodb://10.20.30.40:26017" --username my_username --password my_password --authenticationDatabase my_database --eval "db=db.getSiblingDB('my_database'); printjson(db.my_collection.count())" > output.txt --quiet
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda