繁体   English   中英

猫鼬返回多个结果

[英]Mongoose returning more than one result

您好,我有以下集合结构:

{
    name : 'name1'
    projects : [
      {projectId : 123 , ...more},
      {projectId : 124 , ...more},
      {projectId : 125 , ...more},
    ]
  }
  
  {
    name : 'name2'
    projects : [
      {projectId : 126 , ...}
      {projectId : 127 , ...}
    ]
  }

我的目标是根据它的 projectId 找到一个项目。 因此,如果我要查找 ID 为 123 的项目,结果应该是: {projectId : 123 , ...more}

但现在它正在返回一切:

 {
        name : 'name1'
        project : [
          {projectId : 123 , ...more},
          {projectId : 124 , ...more},
          {projectId : 125 , ...more},
        ]
      }

我的查询看起来像:

   const project = await ClientManager.findOne({
      'project.projectId': projectId,
    });


{
    "projectId" : "123",
}

由于您与当前项目匹配,因此它返回整个文档。 您想要做的是使用 $elemMatch 运算符并在您的投影中使用它。

它看起来像这样

 const project = await ClientManager.findOne({
  project: {$elemMatch: { projectId: projectId } },
}, {'project.$': 1});

有关更多详细信息,请参阅https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

暂无
暂无

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

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