[英]how to update data in mongodb using angular nodejs express
I want to update the likes' value with 1.我想用 1 更新喜欢的值。
My MongoDB structure is as follows.我的MongoDB结构如下。
{"_id":{"$oid":"5f980a66c4b0d52950bdf907"},
"course_id":"5002",
"lecture_id":"451",
"__v":0,
"created_at":{"$date":"2020-10-27T11:54:14.842Z"},
"message":[
{
"_id":{"$oid":"5f980a84c4b0d52950bdf90a"},
"from":{
"userId":"68819","name":"Developer IIRS",
"avatar":"https://api.adorable.io/avatars/285/811753.png"
},
"content":"ok",
"likes":0,
"parent_id":null,
"created_at":{"$date":"2020-10-27T11:54:44.388Z"}
}
]
}
Here is my code to update value of likes这是我更新喜欢值的代码
router.post('/:lectureId/:courseId/:id', function(req, res, next) {
let query = {
lecture_id: req.params.lectureId,
course_id: req.params.courseId
};
let update = { $push: { message: { _id: req.params.id,likes: 1 } } }
var options = {
new: true
}
console.log('Liked', query)
Chat.update(query, update, function(err, result) {
if (err) {
//res.send(err);
console.log('err',err );
return err;
}
res.json(result);
})
});
Its basically adding new document.它基本上是在添加新文档。 I am stuck here how can i do this.我被困在这里我该怎么做。
"lecture_id": "451",
"course_id": "5002"
},
{
$inc: {
"message.$[elem].likes": 1
}
},
{
new: true,
arrayFilters: [
{
"elem._id": "5f980a84c4b0d52950bdf90a"
}
]
})```
Here is the mongo query.这是mongo查询。
db.collection.update({
"lecture_id": "451",
"course_id": "5002",
"message._id": "5f980a84c4b0d52950bdf91a"
},
{
"$inc": {
"message.$.likes": 1
}
})
Try it here Mongo Playground在这里试试Mongo 游乐场
Not an expert in nodejs.不是 nodejs 专家。 Below update statement may work for you.以下更新声明可能对您有用。
let update = { $inc: { "message.$.likes": 1 } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.