#node.js #mongodb #rest #express #mongoose
Вопрос:
У меня есть Модель магазина
const Shop = mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, shop_name: { type: String }, products: {_id: mongoose.Schema.Types.ObjectId,type:Array}, });
и схема продукта
const Product = mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, title: { type: String }, description: { type: String }, shop: { type: mongoose.Schema.Types.ObjectId, ref: "Shop" }, });
Я пытаюсь получить доступ к продукту в массиве продуктов модели магазина, чтобы обновить его.
Я много искал в Интернете, но не мог найти то, что ищу. Мне нужно получить доступ к очень конкретному продукту в массиве продуктов с заданными параметрами, такими как идентификатор магазина и идентификатор продукта.
Это то, что я пытался сделать
const item = await Product.findOne({_id} , 'products').find({"products._id" : productId})
Но это дает объект мангуста, если второй метод поиска находит совпадение
[ { products: [ [Object] ], _id: 617f1bca39a5a43c1a981060, butik: 'scsbutik', butik_slug: 'egzbutikcom-1000010', butik_image: 'https://webizade.com/bm/img/butik-10.jpg', butik_points: '9.8', butik_order_count: 45, butik_success_order_count: 42, butik_refund_count: 3, is_butik_refund: true, __v: 0, login: [] } ]
Мне нужно получить доступ к объекту ВНУТРИ массива продуктов и обновить этот продукт.
Заранее благодарен за любую помощь.