Populate不会返回指定的集合数据

时间:2018-04-25 14:36:49

标签: javascript node.js mongodb mongoose

我有这个信用模式

const CreditSchema = new Schema({
  userId: Schema.Types.ObjectId,
  credit: {
    type: Number,
    default: 0
  },
  log: [String]
})

我希望可以在以下电话中检索

exports.getUser = async function(req, res) {

  const user = await User.findOne({_id: req.query.id})
  .populate('credit')
  .exec()

  res.json(user)
}

但我得到的是userSchema的数据,我没有看到来自信用模式的数据。这就是我的userSchema的样子

const UserSchema = new Schema({
  name: {
    type: String
  },
  credit: {
    type: Schema.Types.ObjectId, 
    ref: 'Credit'
  }
})

我真的抓狂了,我的数据库中包含数据,而userSchema的_id与creditSchema的userId相同。

这是用户和信用的数据

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

也许是这样的:

 User.findOne({_id: req.query.id})
.populate("credit")
.exec(function (err: any, result: any) {
    ...//code    
})
});
相关问题