Javascript 将JSON.stringized数据插入MongoDB

Javascript 将JSON.stringized数据插入MongoDB,javascript,json,node.js,http,mongodb,Javascript,Json,Node.js,Http,Mongodb,我目前正试图通过Node.js请求HTTP响应,然后使用JSON.stringify(一种将内容转换为JSON文档格式的方法)将输出解析为MongoDB。出于某种原因,我在MongoDB中得到了一些奇怪的输出,它是这样的: var obj = {}; obj.url = hostNames[i]; obj.statusCode = res.statusCode; obj.headers = res.headers; db.collection.save(JSON.stringify(obj,

我目前正试图通过Node.js请求HTTP响应,然后使用
JSON.stringify
(一种将内容转换为JSON文档格式的方法)将输出解析为MongoDB。出于某种原因,我在MongoDB中得到了一些奇怪的输出,它是这样的:

var obj = {};
obj.url = hostNames[i];
obj.statusCode = res.statusCode;
obj.headers = res.headers;

db.collection.save(JSON.stringify(obj, null, 2));

我认为它所做的是将每个字符解释为一个新变量。我在代码中做错了什么

您是否检查了JSON.stringify(obj,null,2)的输出? 我想这将返回预期的结果

此错误可能有两个原因: 存储文档的方式错误或错误 检索文档的方式是错误的

在(mongodb getting started)中,没有提到在调用insert或其他任何东西之前将文档转换为json

你试过像这样储存吗
db.collection.save({'content':JSON.stringify(obj,null,2)})

为什么要将obj严格化?API需要一个javascript对象

只要做:

> db.scrape.find()
{ "_id" : ObjectId("51472849650593014a3c20da"), "0" : "{", "1" : "\n", "2" : " ", "3" : " ", "4" : "\"", "5" : "u", "6" : "r", "7" : "l", "8" :

我在流星计划中也遇到了同样的问题。“response”是一个字符串,包含json格式的数据。“保存”方法不起作用。我通过以下方式创建了一个新文档:

db.collection.save(obj);

我在这里有点困惑:为什么要存储JSON字符串,而不是文档本身?因为Mongo希望您提供一个文档,所以它对提供的字符串做了唯一更不合理的事情——将其解析为数组。你至少应该把它像
db.collection.save({res:JSON.stringify(obj,null,2)})。但是,坦率地说,您正在尝试Mongo的工作:为什么不在输出对象时格式化它呢?谢谢您的回答。我在想,用JSON.stringify()格式化导入会更方便。对我来说,你会怎么做?请记住,每个“网站”有三个对象
url
statusCode
,和
标题。
url
是每个“网站”响应的主键。它已被弃用。还有别的办法吗?
 obj = JSON.parse(response);
 db.collection.insert(obj);