简体   繁体   English

如何从MongoDB返回一个对象,该对象包含具有其他集合ID的数组?

[英]How can I return an object from MongoDB that contain an array with ids from other collection?

Hello guys I have the following query but it returns only an array with skills instead the object with array inside 大家好,我有以下查询,但它只返回一个具有技能的数组,而不是内部带有数组的对象

To make it clearer 更清楚一点

EndorsedSkill response 认可的技能回应

{
    _id
    userId
    skills: [
        {_id},
        {_id}
    ]
}

Skill response 技能反应

{
    _id
    name
}

What I want to receive is 我想收到的是

{
    _id
    userId
    skills: [
        {_id, name},
        {_id, name}
    ]
}

The query looks like this 查询看起来像这样

getUsersSkills: async (_, { u_id, ...args }, { user }) => {
    try {
      await requireAuth(user);
      const p1 = Skill.find({}).sort({ createdAt: -1 });
      const p2 = EndorsedSkill.findOne({ userId: u_id });
      const [skills, endorsed] = await Promise.all([p1, p2]);

      const checkEndorsedSkills = await skills.reduce((arr, skill) => {
        const s = skill.toJSON();

        if (endorsed.skills.some(s => s.equals(skill._id))) {
          arr.push({
            ...s,
            endorsed: true
          });
        } else {
          arr.push({
            ...s,
            endorsed: false
          });
        }

        return arr;
      }, []);

      const endorsedSkills = checkEndorsedSkills.filter(
        skill => skill.endorsed === true
      );

      return endorsedSkills;
    } catch (error) {
      throw error;
    }
  },

您能否提及一下您如何连接到mongoDB?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM