将JSON.Stringified数据插入到MongoDB中

var obj = {}; obj.url = hostNames[i]; obj.statusCode = res.statusCode; obj.headers = res.headers; db.collection.save(JSON.stringify(obj, null, 2)); 

我目前正试图通过Node.js请求HTTP响应,然后用JSON.stringify (一种将事物转换成JSON文档格式的方法)将输出parsing成MongoDB。 出于某种原因,我在MongoDB中得到了一些奇怪的输出,就像这样:

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

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

为什么使obj变成string? API期望一个JavaScript对象。

做就是了:

 db.collection.save(obj); 

你检查了JSON.stringify(obj,null,2)的输出吗? 我想这会返回预期的结果。

这个错误有两种可能的原因:存储文件的方式是错误的,或者文件检索的方式是错误的

http://docs.mongodb.org/manual/tutorial/getting-started/(mongodb入门)没有提到在调用insert或其他之前将文档转换为json。

你有尝试存储它像db.collection.save({'content':JSON.stringify(obj,null,2)});?

我在Meteor项目中遇到了同样的问题。 “响应”是一个包含json格式数据的string。 “保存”方法没有工作。 我简单地创build了一个新的文档:

  obj = JSON.parse(response); db.collection.insert(obj);