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

检查字段出口,使用go mongodb比较int值,mongodb,go,mongo-go,Mongodb,Go,Mongo Go,我使用golang作为mongodb的后端。我想执行以下代码 "$match" : bson.M{ "emp_dept": "xyz", "skills": "asd", "emp_del_status": bson.M{"$exists": true, "$eq": 0}, //

我使用golang作为mongodb的后端。我想执行以下代码

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

收集
员工

{
"emp_dept": "xyz",
"skills":     "fgg",
}
{
"emp_dept": "xyz",
"skills":     "cvv",
}
{
"emp_dept": "xyz",
"skills":     "asd",
"emp_del_status":0,
}

在my DB中,一些文档不包含
emp_del_status
key。因此,我想检查是否有任何文档包含
emp\u del\u status
键,然后检查值
0
,并基于其他参数返回结果,同时输入
emp\u del\u status
键。但若文档不包含
emp_del_status
键,则结果将仅基于其他参数。我们如何检查这一点?

所以基本上您需要的是
emp\u del\u状态的
$或

您需要的文档中,“emp部门”:“xyz”和“技能”:“asd”
emp del_状态
0或
缺失(不存在)

以下是您描述该过滤器的方式:

"$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},
    },
}

我已经用收集重新发布了这个问题。某些文档没有
emp\u del\u状态
键。