我使用 golang 作為 mongodb 的后端。我想執行下面的代碼"$match" : bson.M{ "emp_dept": "xyz", "skills": "asd", "emp_del_status": bson.M{"$exists": true, "$eq": 0}, // emp account is active }我的收藏是收藏Employee{"emp_dept": "xyz","skills": "fgg",}{"emp_dept": "xyz","skills": "cvv",}{"emp_dept": "xyz","skills": "asd","emp_del_status":0,}在我的數據庫中,一些文檔不包含 emp_del_status密鑰。所以我想檢查是否有任何文檔包含emp_del_status鍵,然后檢查值0并根據其他參數和emp_del_status鍵返回結果。但如果文檔不包含emp_del_status密鑰,則結果將僅基于其他參數。我們如何檢查這個?
1 回答

開滿天機
TA貢獻1786條經驗 獲得超13個贊
所以基本上你想要的是一個$orfor emp_del_status。
您想要文檔,其中,"emp_dept": "xyz" 和 或者缺失(不存在)。"skills": "asd" emp_del_status0
這是您可以描述該過濾器的方式:
"$match": bson.M{
"emp_dept": "xyz",
"skills": "asd",
"$or": []interface{}{
bson.M{"emp_del_status": bson.M{"$exists": false}},
bson.M{"emp_del_status": 0},
},
}
- 1 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消