繁体   English   中英

MongoDB错误:无法在字符串上创建属性“ _id”

[英]MongoDB Error: Cannot create property '_id' on string

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

这是数据库连接:

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);

(“数据”只是一个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:无法在Collection.insertMany的字符串'{“ hashtag”:“ myhash”,“ popularity”:1}'上创建属性'_id'... ...

有什么想法我做错了吗?

我不知道您从哪里获取jsonHash变量,但我认为您在此处进行了不必要的JSON处理。 您还要插入错误的变量,要插入objHash这是要插入的有效对象),现在要插入只是字符串的jsonHash JSON.stringify(objHash); 未执行任何操作,因为您未保存从函数返回的JSON。 我想你想要这样的东西吗?

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

jsonHash仍然是字符串。 可能是您想保存objHash而不使用JSON.stringify吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM