У меня проблема с запросом MongoDB.
Во-первых, у меня есть « testScriptResultCollection » со структурой ниже:
{
testCaseId: x
testScriptId: 1
descripttion: aaa
}
{
_id: 2
testCaseId: x
testScriptId: 2
descripttion: bbb
}
{
_id: 3
testCaseId: x
testScriptId: 3
descripttion: ccc
}
, а другая коллекция - "testCaseCollection" :
{
_id: 1
testCaseId: x
testScripts: [
{
testScriptId: 1
name: testScript1_Name
},
{
testScriptId: 2
name: testScript2_Name
}
{
testScriptId: 3
name: testScript3_Name
}
]
}
Мне нужно извлечь объект вроде:
[
{
testCaseId: x
testScriptId: 1
descripttion: aaa
name: testScript1_Name
},
{
testCaseId: x
testScriptId: 2
descripttion: bbb
name: testScript2_Name
},
{
testCaseId: x
testScriptId: 3
descripttion: ccc
name: testScript3_Name
},
]
Я попытался выполнить запрос, чтобы найти 2 коллекции с "testCaseId" и найти "имя" testScriptId таким образом, но это не так
testScriptResultCollection.aggregate{[
{
$match: {testCaseId : x}
},
{
$lookup:
{
from: "testCaseCollection"
localField: "testCaseId",
foreignField: "testCaseId",
as: "combineResults"
}
},
{
$addFields :
{
"name": {
$filter: {
input: "$combineResults.testScripts",
as: "testScriptArr",
cond: { $eq: ["$$testScriptArr.testScriptId", $testScriptId]}
}
}
}
}
]}
Может кто-нибудь мне помочь. Любая помощь будет оценена. Большое спасибо.