mongoose – 通过标准在子文件中查找

我刚刚陷入这个问题。 我有两个mongoose模式:

let userSchema = new mongoose.Schema({ username: { type:String, default:null }, email: { type:String, required:true }, role: { type: mongoose.Schema.Types.ObjectId, ref: 'Role', required: true }, }); let roleSchema = new mongoose.Schema({ name: { type:String, default:"Player" }, privileges: [ { resource: String , actions: [ String ] }, ], }); 

问题si如何find具有特定条件的用户例如获取所有用户angular色名称=“超级pipe理员”我试着这个没有结果

 User.find({'role.name':'Super Admin'}).populate('role') .exec() .then(results => { res.success(results); }, error => { res.error(error); }) 

这应该给所有用户所需的模式:

 db.roleSchema.aggregate([ {$match:{name:'Super Admin'}, {$lookup: {from: "userSchema",localField: "_id",foreignField: "role",as: "userSchema"}}, {$unwind : "$userSchema"}, {$group:{ _id:'$users._id', username:{$first:'$users.username'}, email:{$first:'$users.email'} }} ]) 

希望我的回答是有帮助的