mongodb печатают json без пробела т.е. некрасивый json

Я использую mongodb 2.2.0 и пытаюсь напечатать json в одной линии в противоположность "симпатичной" печати, используя printjson() , или находят() .pretty() . т.е. Мне нужны документы, перечисленные в формате json, как сделано, просто управляя командой db.collection.find() .limit (10) , но мне нужен в сделанное использование курсора в файле JavaScript следующим образом:

var cursor = db.collection.find().sort({_id:-1}).limit(10000);
while(cursor.hasNext()){
    //printNonPrettyJson(cursor.next()); //How???!
}

print() doesn't do the job, it just prints some gibberish about the object identifier.

Причина я хочу это, состоит в том, потому что я называю файл JavaScript от пульта и затем передаю продукцию к файлу следующим образом:

mongo mydatabase myjsfile.js >> /tmp/myoutput.txt

Править: Я хочу продукцию следующим образом:

> db.zips.find().limit(2)
{ "city" : "ACMAR", "loc" : [ -86.51557, 33.584132 ], "pop" : 6055, "state" : "A
L", "_id" : "35004" }
{ "city" : "ADAMSVILLE", "loc" : [ -86.959727, 33.588437 ], "pop" : 10616, "stat
e" : "AL", "_id" : "35005" }
>

и не как:

> db.zips.find().limit(2).pretty()
{
        "city" : "ACMAR",
        "loc" : [
                -86.51557,
                33.584132
        ],
        "pop" : 6055,
        "state" : "AL",
        "_id" : "35004"
}
{
        "city" : "ADAMSVILLE",
        "loc" : [
                -86.959727,
                33.588437
        ],
        "pop" : 10616,
        "state" : "AL",
        "_id" : "35005"
}
>

как дан всеми другими методами. Снова, мне нужно это использование объекта курсора.

24
Это печатает тип объекта, который я предполагаю, т.е. [возражают bson_object]
добавлено автор Plasty Grove, источник
Какова "тарабарщина", которую печать() показывает на курсоре?
добавлено автор Michael Marr, источник

6 ответы

var cursor = db.collection.find().sort({_id:-1}).limit(10000);
while(cursor.hasNext()){
    printjsononeline(cursor.next());
}
59
добавлено
Хороший - изменил это на ответ с тех пор it' s более прямой
добавлено автор Plasty Grove, источник
Так много победы в этом ответе!
добавлено автор michael_erasmus, источник
Этот ответ должен быть принят вместо того выше
добавлено автор Pawel Veselov, источник

Попробуйте печать (tojson ()) - есть пример печати использования курсора в Доктора MongoDB.

    var myCursor = db.inventory.find( { type: 'food' } );
    var myDocument = myCursor.hasNext() ? myCursor.next() : null;

    if (myDocument) {
        var myItem = myDocument.item;
        print(tojson(myItem));
    }
3
добавлено
Нет, который просто дает мне [возражают bson_object] напечатанный снова и снова
добавлено автор Plasty Grove, источник
Обновленный мой ответ, чтобы показать то, в чем я нуждаюсь
добавлено автор Plasty Grove, источник
Нет, doesn' t работа. Как упомянуто здесь: docs.mongodb.org/manual/applications/read/#cursor, printjson() является альтернативой, чтобы печать (tojson ())
добавлено автор Plasty Grove, источник
Как я сказал в вопросе, я don' t хотят использовать printjson. Есть ли альтернатива?
добавлено автор Plasty Grove, источник
Что относительно db.collection.find() .forEach (функция (myDoc) {печать (myDoc);});
добавлено автор Michael Marr, источник
Что такое продукция в качестве примера просто печать команда?
добавлено автор Michael Marr, источник
Да жаль - это было скопировать/вставить неудача - я обновил, чтобы показать то, что я нашел в докторах.
добавлено автор Michael Marr, источник

С "видом" и "пределом", могут быть настроены результаты. с mongoexport - type=csv, результат может быть напечатан в файл CSV, который может быть прочитан в xls или в одной линии.

2
добавлено

Можно всегда делать хакерское проникновение JS для этого:

> db.tg.find().forEach(function(doc){ print(tojson(doc).replace(/(\r\n|\n|\r|\s)/gm, '')); })
{"_id":ObjectId("511223348a88785127a0d13f"),"a":1,"b":1,"name":"xxxxx0"}

Не симпатичный, но работы

1
добавлено
@PlastyGrove Действительно я не уверен почему они haven' t добавил уменьшать функцию также
добавлено автор Sammaye, источник
Только для полноты, I' d нравится добавлять, что можно сделать, захват regex, используя () и использует его в заменении param как " дюйм за 1$
добавлено автор Plasty Grove, источник
Большое спасибо! Я can' t верят там isn' t способ напечатать простой json без пробелов! Почему это настолько трудно?!! I' ve, избивая мою голову на столе в течение 2 часов теперь: (
добавлено автор Plasty Grove, источник

если у каждого пункта есть {} скобки и нет, никакие другие тогда не разделяют его на скобках, используя регулярное выражение.

Это разделило бы его на {..}..{} Пункты. Но если бы там вложены {}, это не работало бы.

var res = s.match(/\{(.|\s)*?\}/g);
if(res) for(var x=0;x
0
добавлено
Можно ли напечатать продукцию в качестве примера? Я не уверен, что вы имеете в виду. У каждой последовательности JSON, которая представляет документ, может быть много больше чем 2 скобы
добавлено автор Sammaye, источник
That' s, почему я спросил. Это работало бы на то, которое вы показали.
добавлено автор QuentinUK, источник

Вот то, что я использую из командной строки

mongoexport -d $dbname -c $collection -q '{ "id" : -1 }'

Не уверенный вы можете/вид/ограничивать его

0
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском