我使用 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 关注
- 129 浏览
添加回答
举报
0/150
提交
取消