Javascript 使用Node.JS Express更新MongoDB中的嵌套数组
我有一个具有这种结构的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
> 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格式的