我有一個帶有_id和name以及其他欄位(..)的問題集合,以及一個帶有_id、name和問題陣列的測驗集合。
我正在嘗試使用其欄位獲取所有問題并添加一個欄位“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 的引數必須是陣列,但型別為:字串
我究竟做錯了什么 ?
uj5u.com熱心網友回復:
你可以這樣做:
db.questions.aggregate([
{
"$lookup": {
"from": "tests",
"localField": "_id",
"foreignField": "questions",
"as": "usedIn"
}
},
{
"$project": {
"usedIn": {
"$size": "$usedIn"
},
"name": 1
}
}
])
作業示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/460150.html
標籤:javascript 节点.js mongodb 表示 猫鼬
上一篇:使用mongoose查找多個檔案
下一篇:貓鼬查找或多列不起作用
