检查字段退出,使用 go mongodb 比较 int 值

check field exits,compare int value using go mongodb

我使用 golang 作为后端 mongodb.I 想执行下面的代码

"$match" : bson.M{
        "emp_dept": "xyz",
        "skills":     "asd",
        "emp_del_status": bson.M{"$exists": true, "$eq": 0}, // emp account is active
    }

我的Collection是

Collection 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 键,然后根据其他参数和 emp_del_status 键检查值 0 和 return 结果。但如果文档不包含 emp_del_status 键,则结果将仅基于其他参数。我们如何检查?

所以基本上你想要的是 $or for emp_del_status.

您想要 "emp_dept": "xyz" and "skills": "asd", and 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},
    },
}