如何向 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()