#node.js #mongodb #mongoose
Вопрос:
я хочу, чтобы заполнение возвращало массив объектов, если мы выносим заполнение, оно возвращает категорию с массивом идентификаторов в
const categorySchema = mongoose.Schema({
name:String,
products:[{
type:mongoose.Schema.Types.Number,
ref:'Product'
}]
})
autoIncrement.initialize(mongoose.connection)
mongoose.plugin(autoIncrement.plugin,'Categories')
export default mongoose.model('Categories', categorySchema)
в одной категории есть несколько продуктов
const productSchema = mongoose.Schema({
name:String,
category:{
type:mongoose.Schema.Types.Number,
ref:'Category'
}
})
autoIncrement.initialize(mongoose.connection)
mongoose.plugin(autoIncrement.plugin, 'Products')
export default mongoose.model('Products',productSchema)
export const getProductsByCat = async (req, res)=>
{
try{
const result1= await Category.findOne({_id:req.params.id})
console.log(result1)
это и есть результат
{ продукты: [ 24, 27, 28 ], _id: 3, название: «Не овощи», __v: 5 }
но когда я применяю функцию заполнения, то никакого результата
const products = await Category.findOne({_id:req.params.id}).populate('products')
console.log(products )
}catch(error)
{
res.status(404).json({message:error.message})
}
}
я хочу такого результата
{ products:[ { id:24, productName: 'eggs', price:100}, { id:27, productName: 'chicken', price:200},{ id:28, productName: 'fish', price:400}], _id: 3, name: 'Non-Vegetables', __v: 5 }
Комментарии:
1. Что значит «безрезультатно»? Пуст ли массив продуктов?
2. он ничего не возвращает, я хочу, чтобы он возвращал массив объектов, содержащий полную информацию, ниже приведен результат, который я хочу, например:-{ продукты[ { идентификатор:24, имя продукта: ‘яйца’, цена:100}, {идентификатор:27, имя продукта: ‘курица’, цена:200}, {идентификатор:28, имя продукта: ‘рыба’, цена:400}], _id: 3, имя: ‘Не овощи’, __v: 5 }