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

标签 mongodb go mongo-go

我正在使用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键,则结果将仅基于其他参数。我们如何检查呢?

最佳答案

因此,基本上您想要的是$oremp_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},
    },
}

关于mongodb - 检查字段退出,使用go mongodb比较int值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63188730/

相关文章:

javascript - 如果它是多维数组或对象或两者,如何从 Meteor 集合中获取元素?

Golang requestId 日志记录

mongodb - 在 Mongo-go-driver 中创建一个独特的字段

go - 为什么闭包中的变量没有被遗忘?

go - Gin-Gonic 文件上传 mime 错误

node.js - 使用 MongoDB Atlas 时,mongo-go-driver 因服务器选择超时而失败

mongodb - mongo-go-driver 聚合调用总是返回错误

mongodb - Prisma-docker 无法连接到服务器

python - Flask-mongoengine 文档 id

mongodb - 如何获取mongodb中所有具有对象id的记录