我想用mongoose的$push去更新model中的数组但是却比预想的多插入了一条数据
基本是一个评论的功能,回复一个评论后插入一条数据,但是结果却返回了两条
model
const postSchema = new Schema({
uid: {
type: String,
required: true
},
author: {
type: String,
required: true
},
title: {
type: String,
required: true
},
content: {
type: String,
default: ''
},
comments: [
{
pid: {
type: String
},
uid: {
type: String
},
author: {
type: String
},
content: {
type: String,
default: ''
},
createdAt: {
type: Date,
default: new Date()
}
}
],
createdAt: {
type: Date,
default: new Date()
}
})
route
router.post('/postComment', async ctx => {
const { pid, uid, content, author } = ctx.request.body
const postInfo = await Post.update(
{ _id: pid },
{
$push: {
comments: { pid, uid, author, content, createdAt: new Date() }
}
},
err => {
if (err) {
ctx.body = {
code: -1,
message: '回复失败'
}
} else {
ctx.body = {
code: 0,
message: '回复成功'
}
}
}
)
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
老哥,请问你解决了吗?我也遇到了一样的问题了
我也遇到了一样的问题,使用$addToSet代替了\$push之后,解决了