簡體   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