如何使用Node.js查询对象ID是否在MongoDB中的数组中?

时间:2017-06-27 20:04:47

标签: node.js mongodb mongoose

这就是我的模型在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只会在没有响应的情况下冻结。 它实际上是正确的方式,还是以不同的方式处理它?非常感谢你!

0 个答案:

没有答案