Как добавить данные в массив MongoDB?

#node.js #arrays #mongodb #push

Вопрос:

Ниже приведен мой код для добавления отзывов в массив отзывов в объекте ресторан

 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);  }  

Это не добавляет никаких данных в базу данных, как это правильно сделать?

Ответ №1:

Если я правильно понял, вам нужно позвонить в обновление после того, как вы добавите это в свои отзывы.

 await restaurantsCollection.updateOne({restaurantId : newReview.restaurantId},{ $set: {reviews: restaurant.reviews} }  

или вы можете легко нажать на него вот так, и вам не нужно будет выполнять запрос findOne:

 await restaurantsCollection.updateOne({restaurantId : newReview.restaurantId},{ $push: {reviews: newReview.review} }  

Комментарии:

1. спасибо, я не знал о толчке в $

Ответ №2:

Не забудьте сохранить отзыв после того, как переместите его в массив.

 await restaurant.save()