猫鼬填充数组返回空结果

时间:2019-04-10 14:29:05

标签: node.js mongodb mongoose

如何用完整的对象填充项目数组?

这是我尝试做的事情:

const documentCollection = await DocumentCollection.find({})
    .populate({ path: 'items', populate: { path: 'documents', model: 'Document' } });

但是items中的documentCollection字段为空。为什么?不知道我在这里错过了什么

这是猫鼬模型:

export const DocumentsCollection = mongoose.model('Document-Collection',
  new mongoose.Schema({
    name: { type: String },
    items: [
      {
        name: { type: String },
        documents: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Document' }],
      },
    ],
  })
);

export const Document = mongoose.model( 'Document',
  new mongoose.Schema(
    {
      name: { type: String },
      description: { type: String }
    },
    { timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' } }
  )
);

2 个答案:

答案 0 :(得分:1)

尝试一下:

const documentCollection = await DocumentCollection.find({})
    .populate('items.documents');

答案 1 :(得分:0)

我认为您错过了documents中的's'。

const documentCollection = await DocumentCollection.find({})
    .populate({ path: 'items', populate: { path: 'documents', model: 'Document' } });