这就是我的模型在Mongo中的样子:
{
"_id" : ObjectId("5951552c5bb94058b203d3e3"),
"roleName" : "Bartender",
"userList" : [
ObjectId("5926ff5088a3da5bf0d3d43b")
],
"deadline" : ISODate("2017-06-26T18:40:44.153Z"),
"__v" : 1
}
我想一起查询2件事。 1, - 显示我正在寻找的“角色”的模型。 2, - 根据是否在userList数组中找到用户的ID,给我真或假。
exports.roleView = function(req,res, next){
const userID = req.params.userId;
const roleID = req.params.roleId;
const findUser = Role.findById({ _id: roleID
}).populate('userList', 'userName')
.then((result)=>{return result})
.catch((err)=>{return err});
const userinRole = Role.findOne({
_id:roleID, userList: userID})
.then((result)=>{return true})
.catch((err)=>{return false});
return Promise.all([findUser, userinRole])
.then((role)=>{
res.json(role);
});
};
然而,每次在userinRole中没有匹配时,Mongo只会在没有响应的情况下冻结。 它实际上是正确的方式,还是以不同的方式处理它?非常感谢你!