如何使用虚拟(猫鼬)填充深层嵌套的对象?

时间:2019-04-02 06:04:18

标签: node.js mongodb mongoose

我正在尝试从共享相同ID (not _id, hence using virtuals)的两个集合中进行填充。用户集合中的localField嵌套得很深,我相信mongoose无法识别它。

//User Schema:
var user = {
  id: { type: Number, unique: true, min: 1 },
  pa:{
      tracked: [{name: {type: String},
      range: { points: [
                      { cope:
                        { 
                          dittos: {type: Number}
                        }
                      }
                     ]
             }
     }]

}
//virtual
const userSchema = new Schema(user, { toObject: { virtuals: true }, toJSON: { virtuals: true } })
userSchema.virtual('members', {
  ref: 'Cope',
  localField: 'dittos',
  foreignField: 'id'
})
//Cope Schema:
let cope = {
      id: { type: Number, unique: true, min: 1 },
      name: { type: String }
}
const copeSchema = new Schema(cope)
//Populate
 MODELSNAME.find(criteria, projection, options).populate({ path: 'members' }).exec(callback);

当我执行about代码时,我只是从Db中获得了整个用户集合。但是,相反,我要求输出是用户集合中的-->同上,以用应付人口数据代替。

预先感谢:)

0 个答案:

没有答案