Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 使用Node.JS Express更新MongoDB中的嵌套数组_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 使用Node.JS Express更新MongoDB中的嵌套数组

Javascript 使用Node.JS Express更新MongoDB中的嵌套数组,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有一个具有这种结构的MongoDB: > db.daisy.find().pretty() { "_id" : ObjectId("54d6fc2bca33d05a19448a39"), "name" : "Test Song", "genre" : "Rock", "count" : "1", "lyrics" : [ { "line" : "1", "lyric" : "first

我有一个具有这种结构的MongoDB:

> db.daisy.find().pretty()
{
    "_id" : ObjectId("54d6fc2bca33d05a19448a39"),
    "name" : "Test Song",
    "genre" : "Rock",
    "count" : "1",
    "lyrics" : [
        {
            "line" : "1",
            "lyric" : "first lyric"
        }
    ]
}
我想给这首歌添加更多的歌词。我一直在努力通过API,但我似乎无法得到它。我正在尝试像这样更新它

router.post('/updatelyric/:id', function(req, res) {
    var db = req.db;
    var songID = req.params.id;
    console.log(req.params.id)
    db.collection('daisy').update({
        _id: songID
    }, {
        $push: {
            lyrics: req.body
        }
    }, function(err, result) {
        res.send((err === null) ? {msg: ''} : {msg: err});
    });
});
我的帖子有200个代码,但在我的Mongo里什么都没发生。
任何指导都将不胜感激

您可以检查结果对象以查看更新了多少记录吗?状态将为200,因为您正在返回响应,但是检查错误,它将显示一些错误。您正在从req对象检索songId,然后它将是字符串格式,您必须将其转换为mongoDb对象,因为_id是id格式的