参考未填充

时间:2016-04-13 10:59:29

标签: node.js express mongoose

User架构中,我简单地引用了Customer架构。

const UserSchema = new Schema({
  customer: { type: Schema.Types.ObjectId, ref: Customer }, // Customer is the compiled CustomerSchema
  ...
});

const CustomerSchema = new Schema({
  name: String,
  ...
});

在Express控制器中,我正在提取用户,而我正在尝试将客户嵌入到返回的JSON中:

export function me(req, res, next) {
  User
    .findOne({ _id: req.user._id }, '-salt -hashedPassword')
    .populate('customer')
    .exec((err, user) => {
      if(err) return next(err);
      if(!user) return res.json(401);
      res.json(user);
    });
}

但在回复中,customernull

我使用的测试数据:

用户文档:

{
    "_id" : ObjectId("570d1f0938f7da5151b815d2"),
    "customer" : ObjectId("570d1f0838f7da5151b815d0"),
    ...
}

相关客户文件:

{
    "_id" : ObjectId("570d1f0838f7da5151b815d0"),
    ...
}

可能是一个菜鸟问题,但我看不出我看不到的东西=)

1 个答案:

答案 0 :(得分:2)

我认为ref必须是一个字符串:

customer: { type: Schema.Types.ObjectId, ref: 'Customer' },