首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用Go mongo bson地图中的某些字段

禁用Go mongo bson地图中的某些字段
EN

Stack Overflow用户
提问于 2019-11-28 14:51:23
回答 1查看 119关注 0票数 1

我用的是"go.mongodb.org/mongo-driver/bson"

是否有一种方法可以禁用一个字段,但仍然是一个有效的bson映射?

代码语言:javascript
复制
publishFilter := bson.M{}

if publishedOnly {
    publishFilter = bson.M{"published": true}
}

pipeline := []bson.M{
    {"$sort": bson.M{"_id": -1}},
    {
        "$match": bson.M{
            "_id": bson.M{
                "$gt":  sinceObjectID,
                "$lte": maxObjectID,
            },
            publishFilter, // I want to control this to be nothing or `{"published": true}`
            // depending on `publishedOnly`
        },
    },
    {"$limit": query.Count},
}

这个片段绝对不会编译Missing key in map literal

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 14:57:56

不能“禁用”映射中的字段,但可以有条件地构建$match文档:

代码语言:javascript
复制
matchDoc := bson.M{
    "_id": bson.M{
        "$gt":  sinceObjectID,
        "$lte": maxObjectID,
    },
}

if publishedOnly {
    matchDoc["published"] = true
}

pipeline := []bson.M{
    {"$sort": bson.M{"_id": -1}},
    {"$match": matchDoc},
    {"$limit": query.Count},
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59091460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档