首页 > 解决方案 > 查询中的 Mongoose 填充方法返回空数组

问题描述

我无法查询我的模型,并使用 .populate 方法来获取我的对象的引用文档。这是我的模式:

var userSchema = new Schema({
 firstname: { type: String, required: true, unique: false },
 lastname: { type: String, required: true, unique: false },
 ...
 children: [{type: mongoose.Schema.Types.ObjectId, ref: 'Child'}],
});

var childSchema = new Schema({
 firstname: { type: String, required: true, unique: false },
 lastname: { type: String, required: true, unique: false },
 ...
 legal_guardian_id: [{type: mongoose.Schema.Types.ObjectId, ref: 'User'}],
});

这是我尝试运行查询的方式:

User.findOne({ _id: '5b9d30083e33585cc0b8c710' })
  .populate('children').exec((err, doc) => {
    if (err) { return console.error(err); }
    res.send(doc);
})

这导致“孩子”:[]

当我只使用 findOne 方法并返回用户时,我得到“children”:[“5b9d3f23d1408c5f4e2624f3”]。

我究竟做错了什么?

标签: mongodbmongoose

解决方案


推荐阅读