#node.js #mongodb #collections #async-await
Вопрос:
Ниже приведен мой код для добавления элемента в массив внутри объекта MongoDB. Я пытаюсь добавить отзыв о своем ресторане
Объект ресторана выглядит так:
_id: ObjectID("61723c7378b6d3a5a02d908e")
name: "Hotel"
reviews: Array
reviews.js:
const mongoCollections = require('../config/mongoCollections');
const restaurants = mongoCollections.restaurants;
module.exports = {
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 insertInfo = await restaurantsCollection.updateOne( {_id : restaurantId},{$addToSet: {reviews: newReview}} )
if (insertInfo.insertedCount === 0) throw 'Could not add review';
},
index.js:
const restaurantsData = require('./restaurants');
const reviewsData = require('./reviews')
module.exports = {
restaurants: restaurantsData,
reviews: reviewsData
};
seed.js: // для вызова функции
const dbConnection = require('../config/mongoConnection');
const data = require('../data/');
const restaurants = data.restaurants;
const reviews = data.reviews;
const main = async () => {
await reviews.created("61723c7378b6d3a5a02d908e", "random", "sam", 4, "25/2/2002",
"amazing");
}
main();
Я попытался использовать update вместо updateOne, но он показывает устаревшее предупреждение
Комментарии:
1. вы использовали передачу _id в качестве объекта для updateOne?
2. Не понимаю, что ты имеешь в виду
3. жду отзывов.создан(новый идентификатор объекта(«61723c7378b6d3a5a02d908e»), «случайный», «сэм», 4,»25/2/2002″, «удивительно»); Мне было интересно ,передаете ли вы идентификатор строки против идентификатора объекта, поэтому обновление не работает