Подтвердить что ты не робот

Операции записи файлов в mongo script?

Можно ли записать результат запроса в файл из mongo js script. Я много искал, но я не нашел никакого решения.

например: -

cursor = db.users.find();

while(cursor.hasNext()) {
  cursor.next();
  // writing the cursor output to file ????<br/>
}
4b9b3361

Ответ 1

Вы можете использовать печать, а затем перенаправить вывод:

script.js

cursor = db.users.find();
while(cursor.hasNext()){
    printjson(cursor.next());
}

затем запустите script и перенаправьте вывод в файл:

mongo --quiet script.js > result.txt

Ответ 3

Вы можете пропустить цикл while с помощью forEach():

db.users.find().forEach(printjson);

Ответ 4

Не проще ли использовать один из Mongo drivers для языка общего назначения (например, Python, Ruby, Java и т.д. ) и записывать результаты в файл таким образом, в формате, который вы можете использовать (например, в CSV и т.д.)?

ОБНОВЛЕНИЕ: В соответствии с документацией для mongodump вы можете экспортировать коллекцию с запросом:

$ ./mongodump --db blog --collection posts
-q '{"created_at" : { "$gte" : {"$date" : 1293868800000},
                      "$lt"  : {"$date" : 1296460800000}
                    }
    }'

Однако вам нужно будет импортировать эту коллекцию обратно в MongoDB для ее работы или использовать mongoexport для экспорта в виде JSON или CSV, используя тот же флаг запроса (-q) как mongodump.

Ответ 5

Для разных пользователей вам необходимо создать файл script.js с содержимым:

mongo = new Mongo("localhost");
doctor = mongo.getDB("doctor");
users = doctor.getCollection("users");
cities = users.distinct("address.city");
printjson(cities);

затем в консоли выполните:

mongo --quiet script.js > result.txt