我正在尝试将数据推送到我的用户集合文档中的readBook数组。 如代码bellow和console.log中所示,返回用户从数据库中检索并且有数据要推送,但是在代码完成工作后没有任何更改。控制台中没有显示错误。请帮忙!
我有一个mongodb Schema:
const UserSchema = new mongoose.Schema({
_id: Number,
type: {
type: String,
required: true,
default: "personal"
},
email: {
type: String,
unique: true,
required: true,
trim: true
},
username: {
type: String,
unique: true,
required: true,
trim: true
},
name: {
type: String,
required: true,
trim: true
},
password: {
type: String,
required: true,
},
readBook: [{
id: {
type: String,
},
status: {
type: String
},
rating : {
type: String
}
}]
});
尝试使用express:
将数据推送到它router.post("/ratebook", (req,res,next) => {
User.findById(1)
.exec( (error, user) => {
if(error) {
return next(error);
} else {
console.log(user);
console.log(req.body);
User.update( { _id: 1}, { $push: {"readBook": req.body}});
}
})
})
console.log返回:
{ type: 'admin',
readBook: [],
_id: 1,
email: ‘username@gmail.com',
username: 'username',
name: ’Name Surname',
password: '$2a$10$JcuZNrjEh4KNOZ04TxIKLOy4/hcCK0It0.lAAE4zGN/qPavBFx8GS',
__v: 0 }
{ id: '1', bookRating: '4’ }
答案 0 :(得分:1)
您在更新查询上方有console.log位置,如果数据已更新,请在API调用后检查数据库
或使用以下代码并检查console.log。
router.post("/ratebook", (req,res,next) => {
User.findById(1)
.exec( (error, user) => {
if(error) {
return next(error);
} else {
console.log(user);
console.log(req.body);
User.update( { _id: 1}, { $push: {"readBook": req.body}}).exec( (errorU, updatedUser) => {
console.log("Update error", errorU);
console.log("Updated User", updatedUser);
});
}
})
})