Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongoose.populate()不填充_Node.js_Mongodb_Mongoose_Populate_Mongoose Populate - Fatal编程技术网

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(角色);
});
这给了我想要的回应