[英]Mongoose Lookup with foreign key as array
我有一個包含_id和名稱以及其他字段 (..) 的問題集合,以及一個包含_id 、名稱和問題數組的測試集合。
我正在嘗試獲取所有問題及其字段並添加一個字段“usedIn”,該字段計算特定問題存在的測試數量。
questions = await Question.aggregate([
/*{
"$match": {
params
}
},*/
{
"$lookup": {
"from": "tests",
"let": {"questionId": "$_id"},
pipeline: [
{
"$match": {
"$expr": {
"$in": ["$$questionId", "$questions"],
},
},
},
],
as: "tests"
}
},
{
"$addFields": {
"usedIn": {
"$size": "tests"
}
}
},
{
"$project": fieldsObject
},
])
這段代碼給我這個錯誤:
錯誤:無法優化管道:: 由::引起:$size 的參數必須是數組,但類型為:字符串
我究竟做錯了什么?
你可以這樣做:
db.questions.aggregate([
{
"$lookup": {
"from": "tests",
"localField": "_id",
"foreignField": "questions",
"as": "usedIn"
}
},
{
"$project": {
"usedIn": {
"$size": "$usedIn"
},
"name": 1
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.