猫鼬:深度搜索

Mongoose: deep search

我有一个架构 returns 如下:

"_id": "61d4791786dbde4bb0ecd622",
"members": [
    {
        "score": 75,
        "_id": "61d4791886dbde4bb0ece492",
        "userId": "60df085d4729322a7464babc",
        "penalties": [
            {
                "_id": "61d4791886dbde4bb0ece493",
                "penaltyScore": -10
            },
            {
                "_id": "61d4791886dbde4bb0ece494",
                "penaltyScore": -15
            }
        ]
    },
]

我想通过userId查找寄存器。我尝试使用:

ManeuverStatistics.find(userId && { members: { $in: userId } }).exec(
    (err, data) => {
      if (err) {
        res.status(500).send({ message: "failed!" });
        return;
      }
      res.status(200).send(data);
    }
  );

但它没有用...我如何进行深度搜索以找到与 members 数组中的 userId 匹配的内容?

我花了几个小时试图解决它,但我找到了一个可能的解决方案。为了帮助任何其他程序员,这是我的方法:

ManeuverStatistics.find(userId && { "members.userId": userId }).exec(
  (err, data) => {
    if (err) {
      res.status(500).send({ message: "failed!" });
      return;
    }
    res.status(200).send(data);
  }
);

基本上,我可以使用 members.userId.

访问对象内部的键 userId