【发布时间】:2020-12-12 13:25:57
【问题描述】:
我有一个包含集合对象的集合属性的用户模式。这些集合对象有一个名为 items 的属性,它是一个对象数组。
//User Schema
const UserSchema = new mongoose.Schema({
username: {
type: String,
required : true,
},
password: {
type: String,
required: true
},
collections: [{type : mongoose.Schema.Types.ObjectId, ref: 'Collection'}]
});
//Collection Schema
const CollectionSchema = new mongoose.Schema({
items : [{type : mongoose.Schema.Types.ObjectId, ref: 'Item'}]
});
//Item Schema
const ItemSchema = new mongoose.Schema({
title: {
type: String,
required: true
});
使用下面的代码,我尝试创建一个新的项目架构并将其推送到第一个集合对象中。我使用 findById 函数传递了要更新的集合对象的 _id。在找到带有我的 id 的集合后,我只需将 Item Schema 推送到集合对象的 items 数组中。我得到 res.status(200) 但我的 items 数组从未更新。还有其他人有这个问题吗?谢谢你的帮助。
userRouter.post('/addItem', passport.authenticate('jwt', {session: false}), (req, res) => {
const item = new Item(req.body)
item.save(err => {
if(err)
res.status(500).json({message: {msgBody: "Error has occured", msgError: true }});
else {
Collection.findById(req.body.search, function(err, coll){
coll.items.push(item);
req.user.save(err => {
if(err)
res.status(500).json(err)
else{
res.status(200).json(coll)
}
})
})
}
})
});
【问题讨论】:
标签: node.js mongodb mongoose mongoose-schema