node.js 无法从 mongoexport 读取 json

node.js cannot read json from mongoexport

我使用以下命令从 mongo 导出了一个集合:

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
}

现在我想用 node.js 读取这个 json 文件,编辑数据并保存回文件(或新文件)。例如,我想从每个用户中删除 number 字段。

我在使用 node.js 读取文件时遇到问题。我试过这个:

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

但是我得到以下错误:

uncaughtException: Unexpected token {
SyntaxError: Unexpected token {

编辑: 来自 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
}]