难以在Node.js中使用Mongoose的find()函数

时间:2018-07-19 23:29:26

标签: node.js mongoose mongodb-query mongoose-schema mongoose-populate

我在尝试使用猫鼬获取指定数据时遇到了麻烦。我不知道如何在另一个Schema的内部获取Schema的数据。

这是我的Reporte模式,在他内部,我通过他的ID与另一个模式建立了联系。

var reporteSchema = new Schema({
    persona: { type: Schema.Types.ObjectId, ref: 'Persona' },
    descripcion: { type: String, required: false },
    categoria: { type: String, required: [true, 'La categoria es necesaria'] },
}, { collection: 'reportes' });

这是角色角色模式

var personaSchema = new Schema({
    nombre: { type: String, required: [true, 'El nombre es necesario'] },
    apellido: { type: String, required: [true, 'El apellido es necesario'] }, 
    abogado: { type: Schema.Types.ObjectId, ref: 'Abogado', required: true },
    fechaIngreso: { type: String, required: false },

}, { collection: 'personas' });

这是Abogado模式

var abogadoSchema = new Schema({
    nombre: { type: String, required: [true, 'El nombre es necesario'] },
}, { collection: 'abogados' });

如果可以看到,Reporte schema 里面有Persona schema ,而里面有Abogado schema 。我的问题是要从Reporte中找到Abogado数据 。就像是架构的阶梯,我不知道如何获取数据。

我尝试过

Reporte.find({})
        .select('persona') // I get the whole Persona data
        .populate({ path: 'persona', select: 'abogado' }) // and now I just handle Abogado data
        .exec( (err, data) => {} );

现在,我不知道如何来深入了解并获得ABOGADO的名称

0 个答案:

没有答案