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

341
Vistas
Script de shell de Mongoexport: error en la consulta

Escribí un script de shell para crear un volcado de datos de registros actualizados ayer usando el comando mongoexport.

 yesterday=$(date -d 'yesterday 00:00:00' '+%s'000) today=$(date -d 'today 00:00:00' '+%s'000) query="'{\"updated_at\":{\$gte:new Date(${yesterday}),\$lte:new Date(${today})}}'" echo ${query} mongoexport -h $HOST -d $DOC -c $COL_NAME -u $USER -p $PWD -q ${query} -o $fileName

Después de agregar la consulta, cuando ejecuto el script de shell, aparece el siguiente error en la consola

 '{"updated_at":{$gte:new Date(1484287200000),$lte:new Date(1484373600000)}}' too many positional arguments: [Date(1484287200000),$lte:new Date(1484373600000)}}'] try 'mongoexport --help' for more information

Cuando ejecuto esta consulta en la línea de comando, funciona correctamente. ¿Puede alguien decirme por qué es este error cuando se ejecuta en el script de Shell?

Esto funciona en la línea de comandos.

 $mongoexport -h <<HOST>> -d <<DOC>> -c <<COL> -u <<UN>> -p <<PWD>> -q '{"updated_at":{"$gte":new Date(1484287200000),"$lte":new Date(1484373600000)}}'
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Hay una regla general en bash : cuando usa una variable, siempre rodéela con comillas dobles. Hay excepciones, pero son raras.

 mongoexport -h "$HOST" -d "$DOC" -c "$COL_NAME" -u "$USER" -p "$PWD" -q "${query}" -o "$fileName"
over 4 years ago · Santiago Trujillo Denunciar

0

Este código funcionó para mí

 yesterday=$(date -d 'yesterday 00:00:00' '+%s'000) today=$(date -d 'today 00:00:00' '+%s'000) query1="{\"transactionDate\":{\$gte: new Date(${yesterday}),\$lte: new Date(${today})}}" echo $yesterday echo $today mongoexport -d databasename-c collectionname --host yourip --port 27017 -p password -u username-q "${query1}" --type=csv --fields=transactionDate,amount > test5.csv
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