0

我有一系列具有一定技能的工作。请看下面的图片。

在此处输入图像描述

如您所见,每个“工作”对象都有一个“技能”数组。技能在不同的工作之间共享,因此我需要编写一个获取请求,以便当用户单击一项技能时,它会显示需要该技能的不同工作。你能帮我解决这个问题吗?我写了一个代码,但它不起作用。

总共有 32 个文档,每个文档看起来像这样。它有一个工作名称和一系列技能。

有些工作具有相同的技能。例如 IT 业务分析师和业务分析师。

在此处输入图像描述 在此处输入图像描述

虽然有些工作只分享犹太人的。例如,业务分析师和技术经理共享“沟通”技能。

在此处输入图像描述 在此处输入图像描述

输出是共享相同技能的文档数组。例如“业务分析师”和“技术经理”对象的数组,因为它们共享“沟通”技能。

[
  {
    "name": "Business Analyst",
    "category": "Analyze",
    "skills": [
      {
        "name": "Listener",
        "id": "1"
      },
      {
        "name": "Critical Thinking",
        "id": "2"
      },
      {
        "name": "Problem Solving",
        "id": "3"
      },
      {
        "name": "Analytical",
        "id": "4"
      },
      {
        "name": "Communication",
        "id": "5"
      },
      {
        "name": "Documentation",
        "id": "6"
      },
      {
        "name": "Research",
        "id": "7"
      }
    ]
  },
{
    "name": "Technical Manager",
    "category": "Management",
    "skills": [
      {
        "name": "Team Management",
        "id": "8"
      },
      {
        "name": "Mentorship",
        "id": "9"
      },
      {
        "name": "Decision Making",
        "id": "10"
      },
      {
        "name": "Strategic Thinking",
        "id": "11"
      },
      {
        "name": "Negotiating",
        "id": "12"
      },
      {
        "name": "Communication",
        "id": "5"
      },
      {
        "name": "Financials",
        "id": "13"
      }
    ]
  }

]
4

1 回答 1

0

这是一个非常基本的查询,我想知道你是怎么不明白的。

db.getCollection('skills').find({"skills.name":"Communication"})

或者通过技能 ID(如果它是唯一的)

db.getCollection('skills').find({"skills.id":"5"})
于 2019-09-30T12:16:45.310 回答