我有一个商店模型
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" },
});
我正在尝试访问Shop模型的products数组中的产品,以便可以更新它。
我已经在网上搜索了很多次,但是没有找到我要找的东西。我需要使用给定的参数访问products数组中的一个非常特定的产品,这些参数是商店的id和产品的id。
这就是我想做的
const item = await Product.findOne({_id} , 'products').find({"products._id" : productId})
但如果第二个find方法找到匹配项,它就会给出mongoose对象
[
{
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: []
}
]
我需要访问products数组中的对象并更新该产品。
感谢您的帮助。
1条答案
按热度按时间j2datikz1#
不要使用default _id格式,我建议声明一个不同的值,然后使用populate方法来实现
然后路由