如何向 mongoDB 数组添加数据?
How to add data to mongoDB array?
下面是我将评论添加到餐厅对象中评论数组的代码
async created (restaurantId, title, reviewer, rating, dateOfReview, review) {
const restaurantsCollection = await restaurants();
let newReview = {
restaurantId : restaurantId,
title : title,
reviewer : reviewer,
rating : rating,
dateOfReview : dateOfReview,
review : review
};
const restaurant = await restaurantsCollection.findOne({ _id: restaurantId });
restaurant.reviews.push(newReview);
}
这不会向数据库添加任何数据,正确的方法是什么?
如果我没理解错,你需要在推送到你的评论后调用更新。
await restaurantsCollection.updateOne({restaurantId : newReview.restaurantId},{ $set: {reviews: restaurant.reviews} }
或者您可以像这样轻松推送它,而无需执行 findOne 查询:
await restaurantsCollection.updateOne({restaurantId : newReview.restaurantId},{ $push: {reviews: newReview.review} }
推送到数组后别忘了保存评论
await restaurant.save()
下面是我将评论添加到餐厅对象中评论数组的代码
async created (restaurantId, title, reviewer, rating, dateOfReview, review) {
const restaurantsCollection = await restaurants();
let newReview = {
restaurantId : restaurantId,
title : title,
reviewer : reviewer,
rating : rating,
dateOfReview : dateOfReview,
review : review
};
const restaurant = await restaurantsCollection.findOne({ _id: restaurantId });
restaurant.reviews.push(newReview);
}
这不会向数据库添加任何数据,正确的方法是什么?
如果我没理解错,你需要在推送到你的评论后调用更新。
await restaurantsCollection.updateOne({restaurantId : newReview.restaurantId},{ $set: {reviews: restaurant.reviews} }
或者您可以像这样轻松推送它,而无需执行 findOne 查询:
await restaurantsCollection.updateOne({restaurantId : newReview.restaurantId},{ $push: {reviews: newReview.review} }
推送到数组后别忘了保存评论
await restaurant.save()