mongodb - querys - ¿Las operaciones de escritura de archivos en la secuencia de comandos mongo?
operaciones mongodb (5)
¿No sería más sencillo usar uno de los controladores de Mongo para un lenguaje de propósito general (como Python, Ruby, Java, etc.) y escribir sus resultados en un archivo de esa manera, en un formato que pueda usar (como CSV, etc.)?
ACTUALIZACIÓN: de acuerdo con la documentación de mongodump , puede exportar una colección con una consulta:
$ ./mongodump --db blog --collection posts
-q ''{"created_at" : { "$gte" : {"$date" : 1293868800000},
"$lt" : {"$date" : 1296460800000}
}
}''
Sin embargo, necesitaría importar esa colección nuevamente a MongoDB para operarla o usar mongoexport para exportar como JSON o CSV usando el mismo indicador de consulta ( -q
) que mongodump
.
¿Es posible escribir el resultado de la consulta en el archivo del script mongo js? He buscado mucho, pero no encontré ninguna solución.
ex:-
cursor = db.users.find();
while(cursor.hasNext()) {
cursor.next();
// writing the cursor output to file ????<br/>
}
Por separado, debe crear el archivo script.js con los contenidos:
mongo = new Mongo("localhost");
doctor = mongo.getDB("doctor");
users = doctor.getCollection("users");
cities = users.distinct("address.city");
printjson(cities);
luego en la ejecución de la consola:
mongo --quiet script.js > result.txt
Puede omitir el ciclo while usando forEach()
:
db.users.find().forEach(printjson);
Puede usar imprimir y luego redirigir salida:
script.js:
cursor = db.users.find();
while(cursor.hasNext()){
printjson(cursor.next());
}
luego ejecute el script y redirija la salida a un archivo:
mongo --quiet script.js > result.txt
http://www.mongodb.org/display/DOCS/Scripting+the+shell paragraph "Diferencias entre scripted e interactivo / Printing".
./mongo server.com/mydb --quiet --eval "db.users.find (). forEach (printjson);" > 1.txt