Tengo dos esquemas de mangosta.
var mongoose = require('mongoose'); var Schema = mongoose.Schema; var itemSchema = new Schema({ name: {type: String, required: true, max: 25, trim: true}, price: {type: Number, required: true, trim: true, default: 0}, tax: { type: Schema.Types.ObjectId, ref: "Store" } }); module.exports = mongoose.model('Item', itemSchema);El segundo esquema
var mongoose = require('mongoose'); var Schema = mongoose.Schema; var storeSchema = new Schema({ name: {type: String, required: true, trim: true}, taxes: [ { name: String, rate: Number } ] }); module.exports = mongoose.model('Store', storeSchema);Lo que quiero hacer es llenar el objeto de impuestos itemSchema con la matriz de objetos de impuestos storeSchema. cada vez que insertaba un nuevo objeto de impuestos en la matriz de impuestos mongoose creaba un ObjectId. Guardé ese ObjectId en mi itemSchema Tax. Quiero usar ese _id para recuperar los impuestos de la tienda que coincidan con el itemSchema _id.
Lo he intentado hasta ahora, pero no obtengo nada en el atributo de impuestos.
Item.find().populate("tax", "taxes").exec(function (err, docs) { if (err) return console.error(err); console.log(items); });Prueba esta consulta
Item.find().populate({ path: 'tax', select: 'taxes' }).exec(function (err, docs) { if (err) { console.error(err); } else { console.log(docs); } });Item.find().populate(path:"tax", model: ) Mencione el nombre del archivo del modelo de su artículo... no use "" o '' para el nombre del archivo, simplemente agregue el nombre del archivo.
Usa Item.find().populate("Store", "taxes") en lugar de Item.find().populate("tax", "taxes") .