我有一個名為“datas”的集合,另一個集合在名為“challenge”的資料庫中被命名為“aidretentionandgraduations”。兩個集合都有相似的值存盤在名為 unitId 和 Unitid 的不同欄位中,它們的值應該用于合并這兩個集合。因此,如果unitId==elevatorInfo.Institution_Characteristics.Unitid顯示其他檔案,則不會顯示。以下是我嘗試過的:
db.aidretentionandgraduations([
{
'$lookup': {
'from': 'datas',
'localField': 'Unitid',
'foreignField': 'unitId',
'as': 'nice'
}
}, {
'$unwind': {
'path': '$nice'
}
}, {
'$match': {
'$expr': {
'$eq': [
'$unitId', '$elevatorInfo.Institution_Characteristics.Unitid'
]
}
}
}
])
資料采集??:
{ "_id": { "$oid": "627f925ffa5e617f51d5632e" }, "elevatorInfo": { "Institution_Characteristics": { "Unitid": "139384", "Name": "Georgia Northwestern Technical College", "City": "Rome", "State": "GA", "Web_Address": "www.gntc.edu/", "Distance_Learning": "Offers undergraduate courses and/or programs" } }, "studentCharges": { "Cost": { "Published_Tuition_And_Required_Fees": "", "In-state": "$3,062", "Out-of-state": "$5,462", "Books_And_Supplies": "$1,500", "Off-campus_(not_With_Family)_Room_And_Board": "$5,528", "Off-campus_(not_With_Family)_Other_Expenses": "$5,191", "Off-campus_(with_Family)_Other_Expenses": "$2,431", "Total_Cost": "", "Off-campus_(not_With_Family),_In-state": "$15,281", "Off-campus_(not_With_Family),_Out_Of_State": "$17,681", "Off-campus_(with_Family),_In-state": "$6,993", "Off-campus_(with_Family),_Out-of-state": "$9,393" }, "Level_of_student": { "Undergraduate": { "In-state": "$3,062", "Out-of-state": "$5,462" }, "Graduate": { "In-state": "", "Out-of-state": "" } } }}
援助保留和畢業收集:
{ "_id": { "$oid": "622ce9ba5d72be4d703e972d" }, "financialAid": { "Student_Financial_Aid": { "All_Undergraduate_Students": { "Percent_receiving_aid": "", "Average_amount_of_aid_received": "" }, "Any_Grant_Or_Scholarship_Aid": { "Percent_receiving_aid": "90%", "Average_amount_of_aid_received": "$5,603" }, "Pell_Grants": { "Percent_receiving_aid": "69%", "Average_amount_of_aid_received": "$7,845" }, "Federal_Student_Loans": { "Percent_receiving_aid": "8%", "Average_amount_of_aid_received": "$3,371" }, "Full-time,_First-time,_Degree/certificate-seeking_Undergraduate_Students": { "Percent_receiving_aid": "", "Average_amount_of_aid_received": "" } } }, "retentionAndGraduation": { "Retention_And_Graduation": { "Overall_Graduation_Rates": { "Rate": " " }, "Total": { "Rate": "49%" }, "Men": { "Rate": "57%" }, "Women": { "Rate": "40%" }, "Nonresident_Alien": { "Rate": "100%" }, "Transfer_Out-rate": { "Rate": "7%" } } }, "unitId": 139384, "__v": 0}
最終輸出存盤為 uni:
{ "_id": { "$oid": "622fffe6b9ccae37d3bd3b92" }, "financialAid": { "Student_Financial_Aid": { "All_Undergraduate_Students": { "Percent_receiving_aid": "", "Average_amount_of_aid_received": "" }, "Any_Grant_Or_Scholarship_Aid": { "Percent_receiving_aid": "90%", "Average_amount_of_aid_received": "$5,603" }, "Pell_Grants": { "Percent_receiving_aid": "69%", "Average_amount_of_aid_received": "$7,845" }, "Federal_Student_Loans": { "Percent_receiving_aid": "8%", "Average_amount_of_aid_received": "$3,371" }, "Full-time,_First-time,_Degree/certificate-seeking_Undergraduate_Students": { "Percent_receiving_aid": "", "Average_amount_of_aid_received": "" } } }, "retentionAndGraduation": { "Retention_And_Graduation": { "Overall_Graduation_Rates": { "Rate": " " }, "Total": { "Rate": "49%" }, "Men": { "Rate": "57%" }, "Women": { "Rate": "40%" }, "Nonresident_Alien": { "Rate": "100%" }, "Transfer_Out-rate": { "Rate": "7%" } } }, "unitId": 139384, "studentCharges": { "Cost": { "Published_Tuition_And_Required_Fees": "", "In-state": "$3,062", "Out-of-state": "$5,462", "Books_And_Supplies": "$1,500", "Off-campus_(not_With_Family)_Room_And_Board": "$5,528", "Off-campus_(not_With_Family)_Other_Expenses": "$5,191", "Off-campus_(with_Family)_Other_Expenses": "$2,431", "Total_Cost": "", "Off-campus_(not_With_Family),_In-state": "$15,281", "Off-campus_(not_With_Family),_Out_Of_State": "$17,681", "Off-campus_(with_Family),_In-state": "$6,993", "Off-campus_(with_Family),_Out-of-state": "$9,393" }, "Level_of_student": { "Undergraduate": { "In-state": "$3,062", "Out-of-state": "$5,462" }, "Graduate": { "In-state": "", "Out-of-state": "" } } }, "elevatorInfo": { "Institution_Characteristics": { "Unitid": "139384", "Name": "Georgia Northwestern Technical College", "City": "Rome", "State": "GA", "Web_Address": "www.gntc.edu/", "Distance_Learning": "Offers undergraduate courses and/or programs" } }, "__v": 0}

uj5u.com熱心網友回復:
使用 $ out或 $ merge聚合階段。由于您沒有提供代碼,所以我不完全理解 $merge 的問題是什么,但是如果您需要修改 $lookup 的輸出,您可以在 $out 或 $merge 之前通過 $ project來完成。
uj5u.com熱心網友回復:
真正的問題是型別轉換。我沒有注意到 unitId 是一個數字(int32)但 Unitid 是一個字串,因為沒有執行此聚合操作。Mongodb社區論壇幫助我意識到了這樣一個小錯誤。這是鏈接。型別轉換的代碼如下:
[
{
'$addFields': {
'unitId': {
'$toString': '$unitId'
}
}
}, {
'$lookup': {
'from': 'datas',
'localField': 'unitId',
'foreignField': 'elevatorInfo.Institution_Characteristics.Unitid',
'as': 'nice'
}
}, {
'$unwind': {
'path': '$nice'
}
}, {
'$project': {
'__v': 0,
'_id': 0
}
}
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/476990.html
標籤:mongodb 猫鼬 聚合框架 蒙哥壳 MongoDB指南针
下一篇:dsl查詢到Lucene查詢
