我有一個像這樣的 mongo 模型:-
var mongoose = require("mongoose");
const postModel = new mongoose.Schema({
postId: {
type: String,
unique: true,
required: true
},
authorId: {
type: String,
required: true
},
post: {
authorName: {
type: String,
required: true
},
heading: {
type: String,
required: true
},
message: {
type: String,
required: true
},
creationDate: {
type: Date,
required: true
},
image: {
data: Buffer,
contentType: String
},
likes: {
type: Number
},
likedUsers: {
type: Array
},
dislikes: {
type: Number
},
hearts: {
type: Number
},
dislikedUsers: {
type: Array
},
heartedUsers: {
type: Array
},
comments: {
type: Array
}
}
});
module.exports = mongoose.model("postModel", postModel);
現在我想做的是從這個模型中獲取記錄,并將 post 物件的 like 屬性更新為以前的值,并將其增加 1。
我如何在 api 呼叫主體中執行此操作?我的 api 呼叫主體現在看起來像這樣:-
const express = require("express");
const router = express.Router();
const PostModel = require("../models/postModel");
router.post(`/api/like-post/`, (req, res) => {
const { postId, postAuthorId, likeUserId } = req.body;
//What to do here?
});
module.exports = router;
我正在通過單擊一個贊按鈕從反應前端進行 api 呼叫。
非常感謝任何和所有幫助!
uj5u.com熱心網友回復:
autherId按和過濾檔案postId。然后使用$inc將您的帖子like計數更新 1,最后使用$push推likeUserId送到likedUsers陣列。
PostModel.update({
postId: postId,
authorId: postAuthorId
},
{
$inc: {
"post.likes": 1
},
$push: {
"post.likedUsers": likeUserId
}
})
示例 mongo 游樂場
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525256.html
