[英]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.