2015-01-15 4 views
1

Я экспортировал коллекцию из Монго с помощью следующей команды:node.js не могут читать JSON из mongoexport

mongoexport -d <database-name> -c <collection-name> -o foo.json 

Экспорт работал отлично и производства foo.json который выглядел так:

{ 
    "_id" : { "$oid" : "76safuysadf76tsaydgf" }, 
    "name" : "John", 
    "number" : 3 
} 
{ 
    "_id" : { "$oid" : "dfsafuysaasdf7tsayd6" }, 
    "name" : "Fred", 
    "number" : 4 
} 
{ 
    "_id" : { "$oid" : "876sfuyg7rfasff4ffff" }, 
    "name" : "Paul", 
    "number" : 1 
} 

сейчас Я хочу прочитать этот json-файл с помощью node.js, отредактировать данные и сохранить обратно в файл (или новый файл). Например, я хочу удалить поле number от каждого пользователя.

У меня возникли проблемы с чтением файла с помощью узла. Я попытался это:

var fs = require("fs"); 
var obj = JSON.parse(fs.readFileSync("./foo.json")); 
console.log(obj); 

Но я получаю следующее сообщение об ошибке:

uncaughtException: Unexpected token { 
SyntaxError: Unexpected token { 
+0

попробуйте удалить 'JSON.parse', как он больше похож на JavaScript Object – adeneo

+0

@adeneo I, то это в консоли:' < Буфер 7b 20 22 5f 69 64 22 20 3a 20 ... ' – Coop

+0

Выход не JSON Array, это просто подробный, попробуйте сформировать действительный JSON-аранжировщик, а затем используйте JSON.parse – anish

ответ

4

EDIT: Из mongoexport документов: http://docs.mongodb.org/manual/reference/program/mongoexport/

Используйте опцию --jsonArray, чтобы получить выход в формате JSON массив, как я описал в своем первоначальном ответе.

Оригинал ответа

Похоже, что вы пытаетесь разобрать массив JSON, вместо одного объекта. Попробуйте добавить [] и запятые к выходу из mongoexport так это выглядит следующим образом:

[{ 
    "_id" : { "$oid" : "76safuysadf76tsaydgf" }, 
    "name" : "John", 
    "number" : 3 
}, 
{ 
    "_id" : { "$oid" : "dfsafuysaasdf7tsayd6" }, 
    "name" : "Fred", 
    "number" : 4 
}, 
{ 
    "_id" : { "$oid" : "876sfuyg7rfasff4ffff" }, 
    "name" : "Paul", 
    "number" : 1 
}] 
+0

Спасибо, да, это было форматирование объекты - запятые и заключая квадратные скобки, как вы говорите. – Coop

Смежные вопросы