Node.js 在mongoose的嵌套查询中按id查找用户

Node.js 在mongoose的嵌套查询中按id查找用户,node.js,mongoose,Node.js,Mongoose,我有这样一个问题: router.get('/match', (req, res, next) => { User.findOne({ _id: req.query.id }, (err, userfound) => { if (err) return next(err); console.log('userfound ', userfound); User.find({ gender: getGender(userfound.doc.gender), a

我有这样一个问题:

router.get('/match', (req, res, next) => {
  User.findOne({ _id: req.query.id }, (err, userfound) => {
    if (err) return next(err);
    console.log('userfound ', userfound);
    User.find({ gender: getGender(userfound.doc.gender), age: { $gte: (userfound.doc.age - 5), $lte: userfound.doc.age } }, function (err, matches) {
      res.json({
        success: true,
        matches: matches,
        message: "Successful"
      });
    });
  });
在非友好模式下返回单据:

userfound = model = {
  '$__': InternalCache {
  strictMode: true,
    selected: { },
  shardval: undefined,
    saveError: undefined,
      validationError: undefined,
        adhocPaths: undefined,
          removing: undefined,
            inserting: undefined,
              version: undefined,
                getters: { },
  _id: 5d69463e768de047b6aaf739,
    populate: undefined,
      populated: undefined,
        wasPopulated: false,
          scope: undefined,
            activePaths: StateMachine {
    paths: [Object],
      states: [Object],
        stateNames: [Array]
  },
  pathsToScopes: { },
  ownerDocument: undefined,
    fullPath: undefined,
      emitter: EventEmitter {
    _events: [Object: null prototype] { },
    _eventsCount: 0,
      _maxListeners: 0
  },
  '$options': true
},
isNew: false,
  errors: undefined,
    _doc: {
  created: 2019 - 08 - 30T15: 52: 30.048Z,
    __v: 0,
      name: 'Chris',
        dob: 2019 - 12 - 28T00: 00: 00.000Z,
          age: -1,
            gender: 'male',
              tongue: 'xxxxx',
                religion: 'xxxxx',
                  mobile: '9999999999',
                    email: 'chris.k20@gmail.com',
                      password: '$2a$10$LcxHafqgwJVCBDupR4v7wePkvLCQzs8eilq.QpQ4q2MJ8IfcnUAfa',
                        picture: 'https://gravatar.com/avatar/fe5efae62aa7f13c40efec1fb197ac98?s200&d=retro',
                          _id: 5d69463e768de047b6aaf739
},
'$init': true
}
其中,实际内容在对象内部:

 _doc: {
  created: 2019 - 08 - 30T15: 52: 30.048Z,
    __v: 0,
      name: 'Chris',
        dob: 2019 - 12 - 28T00: 00: 00.000Z,
          age: -1,
            gender: 'male',
              tongue: 'xxxxx',
                religion: 'xxxxx',
                  mobile: '9999999999',
                    email: 'chris.k20@gmail.com',
                      password: '$2a$10$LcxHafqgwJVCBDupR4v7wePkvLCQzs8eilq.QpQ4q2MJ8IfcnUAfa',
                        picture: 'https://gravatar.com/avatar/fe5efae62aa7f13c40efec1fb197ac98?s200&d=retro',
                          _id: 5d69463e768de047b6aaf739
}
对对象使用
toObject()
,对对象数组使用
lean()