Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB错误:无法创建属性'_id';在线上_Javascript_Json_Mongodb_Insert - Fatal编程技术网

Javascript MongoDB错误:无法创建属性'_id';在线上

Javascript MongoDB错误:无法创建属性'_id';在线上,javascript,json,mongodb,insert,Javascript,Json,Mongodb,Insert,我在Heroku上使用Node.js和Express以及MongoDB插件。 我的数据库连接工作正常,我可以成功地将一些数据推入,但不能将其他数据推入 以下是数据库连接: mongodb.MongoClient.connect(mongoURI, function (err, database) { if (err) { console.log(err); process.exit(1); } // Save database object from the callback

我在Heroku上使用Node.js和Express以及MongoDB插件。 我的数据库连接工作正常,我可以成功地将一些数据推入,但不能将其他数据推入

以下是数据库连接:

mongodb.MongoClient.connect(mongoURI, function (err, database) {
if (err) {
    console.log(err);
    process.exit(1);
}

// Save database object from the callback for reuse.
db = database;
console.log("Database connection ready");

// Initialize the app.
var server = app.listen(process.env.PORT || dbport, function () {
    var port = server.address().port;
    console.log("App now running on port", port);
});
});
我可以像这样成功地将我的Twitter API响应推送到数据库中:

db.collection(TWEETS_COLLECTION).insert(data);
('data'只是一个JSON变量)

但是当我尝试用相同的方法将另一个JSON变量推入数据库时,我得到了一个错误。代码:

var jsonHash = '{"hashtag":"","popularity":1}';
var objHash = JSON.parse(jsonHash);
objHash.hashtag = req.body.hashtag;
JSON.stringify(objHash);
collection(HASHTAG_COLLECTION).insert(jsonHash);
错误是:

TypeError:无法在字符串“{”hashtag:“myhash”,“popularity”:1}”上创建属性“\u id” 在集合中。插入许多。。。


知道我做错了什么吗?

jsonHash
仍然是一个字符串。可能您想保存
objHash
而不保存
JSON.stringify

我不知道从哪里获得
jsonHash
变量,但我认为您在这里做的是不必要的JSON处理。您还插入了错误的变量,您希望插入的
objHash
是要插入的有效对象,现在您正在插入的
jsonHash
只是一个字符串<代码>JSON.stringify(objHash)没有执行任何操作,因为您没有保存从函数返回的JSON。我想你想要这样的东西

var objHash = {
      hashtag: "",
      popularity:1
};
objHash.hashtag = req.body.hashtag;
collection(HASHTAG_COLLECTION).insert(objHash);

谢谢你!这起作用了。我想我不需要任何JSON处理。