【发布时间】:2017-05-13 11:21:00
【问题描述】:
我似乎无法在 mongoose 中增加嵌套值。我已经尝试了在网上找到的多个修订版,但似乎都没有奏效。我正在使用 mongodb 3.2 版和 mongoose 4.9.5。
这个项目是一个论坛。有一个带有“posts”属性的线程,它是一个数组。每个帖子都有一个“like”属性,每个喜欢该帖子的人都有一个“users”属性,以及一个应该随着每次更新而增加的 count 属性。这是我的模型:
const threadSchema = mongoose.Schema({
title: {type: String, required: true},
date: {type: Date, default: Date.now},
author: {type: String, required: true},
content: {type: String},
posts: [{
content: {type: String, required: true},
user: {type: String, required: true},
created: {type: Date, default: Date.now},
likes: {
users: [String],
count: {type: Number, default: 0}
},
comments: [{
comment: {type: String},
user: {type: String},
created: {type: Date, default: Date.now},
likes: {type: Number, default: 0}
}]
}]
});
这是我的更新代码。它可以很好地推送到 posts.likes.users 数组,但不会增加:
Threads.findOneAndUpdate({"posts._id": req.body.postId}, {"$push": {"posts.$.likes.users": user}}, {$inc: {"posts.$.likes.count": 1}})
我也试过这些版本:
{"$inc": {"posts.likes.count": 1}}
{"$inc": {"posts.$.likes.count": 1}}
{"$inc": {"posts.$.likes.$.count": 1}}
谢谢。
【问题讨论】: