Node.js Mongoose.populate()不填充
我有两个模式的Node.js Mongoose.populate()不填充,node.js,mongodb,mongoose,populate,mongoose-populate,Node.js,Mongodb,Mongoose,Populate,Mongoose Populate,我有两个模式的角色和用户。当我执行角色.find()时,我想用具有该特定角色的用户填充用户 让roleSchema=新模式({ 姓名:{ 类型:字符串, 要求:正确, }, ..., 用户:[{ 类型:mongoose.Schema.ObjectId, 参考:“用户” }] }, { 时间戳:对, }); const Role=mongoose.model('Role',roleSchema); 让userSchema=newschema({ 用户名:{ 类型:字符串, 要求:正确, }, .
角色
和用户
。当我执行角色.find()
时,我想用具有该特定角色的用户填充用户
让roleSchema=新模式({
姓名:{
类型:字符串,
要求:正确,
},
...,
用户:[{
类型:mongoose.Schema.ObjectId,
参考:“用户”
}]
}, {
时间戳:对,
});
const Role=mongoose.model('Role',roleSchema);
让userSchema=newschema({
用户名:{
类型:字符串,
要求:正确,
},
...,
角色:{
类型:mongoose.Schema.ObjectId,
参考:“角色”
},
}, {
时间戳:对,
}
);
const User=mongoose.model('User',userSchema);
当我使用以下代码获得角色时
:
Role.findById(请求参数roleId)
.populate('用户')
。然后(角色=>{
res.send(角色);
}).catch(错误=>{
res.send(err)
});
它返回以下内容:
{
"users": [
],
"_id":"5c78006df35ca926534ad865",
"name":"Role",
"createdAt":"2019-02-28T15:38:21.741Z",
"updatedAt":"2019-02-28T15:38:21.741Z",
"__v":0
}
User.find().populate('role')
工作正常,但role.find().populate('users')
工作不正常
在这种情况下,我是做错了还是不需要.populate()
?别客气。我想我必须一直使用aggregate().lookup()
。。。由于角色中没有任何ID。用户
Role.aggregate()
.查找({
来自:“用户”,
localField:“\u id”,
foreignField:'角色',
as:'用户'
})。然后(角色=>{
res.send(角色);
});
这给了我想要的回应。没关系。我想我必须一直使用aggregate().lookup()
。。。由于角色中没有任何ID。用户
Role.aggregate()
.查找({
来自:“用户”,
localField:“\u id”,
foreignField:'角色',
as:'用户'
})。然后(角色=>{
res.send(角色);
});
这给了我想要的回应