2012-01-20 11 views
5

-f [- fields] arg coma separada lista de nombres de campo, por ejemplo -f nombre, edad

  • es que hay una manera de conseguir la colección completa como el uso de volcado, pero no en formato BSON?
  • Necesito datos CSV

Gracias

+0

mongodb no tiene comando de exportación para el volcado de CSV? Incluso hoy en día, 2015? –

Respuesta

0

Se puede crear un archivo con los nombres de campo (puede ser más fácil para usted):

--fieldFile arg   file with fields names - 1 per line 

En su caso pudieran ser todo lo mismo, pero la razón por la que debe especificar los nombres de campo es porque podrían ser diferentes para cada documento, sin embargo, los nombres de campo en el csv deben ser corregidos.

10

En bash se puede crear este "export-all-collections-to-csv.sh" y pasar el nombre de base de datos como el único argumento (no dude en reducir esto a una sola colección):

OIFS=$IFS; 
IFS=","; 

dbname=$1 #put "database name" here if you don't want to pass it as an argument 

collections=`mongo $dbname --eval "rs.slaveOk();db.getCollectionNames();" --quiet`; 
collectionArray=($collections); 

for ((i=0; i<${#collectionArray[@]}; ++i)); 
do 
    keys=`mongo $dbname --eval "rs.slaveOk();var keys = []; for(var key in db.${collectionArray[$i]}.findOne()) { keys.push(key); }; keys;" --quiet`; 
    mongoexport --db $dbname --collection ${collectionArray[$i]} --fields "$keys" --csv --out $dbname.${collectionArray[$i]}.csv; 
done 

IFS=$OIFS; 
Cuestiones relacionadas