首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mongo-go-driver创建动态过滤器

使用mongo-go-driver创建动态过滤器
EN

Stack Overflow用户
提问于 2019-06-26 23:44:30
回答 1查看 624关注 0票数 0

我想用mongo-go-driver创建一个动态过滤器。

例如,我有这样的文档:

代码语言:javascript
复制
{
"_id":"5d1231380a2a2b39a99c3ed1"},
"name":"flower.png",
"colors":["#ffffff","#212121","#999999","#dbdbdb","#ff5252"],
},
{
"_id":"5d1231380a2a2b39a99c3ed0"},
"name":"image of go.jpg",
"colors":["#dedede","#dfdfdf","#dddddd","#e0e0e0","#e2e2e2"],
},
{
"_id":"5d1231380a2a2b39a99c3ecf"},
"name":"bolket rulez.png",
"colors":["#000000","#010101","#020202","#030303","#040404"],
},
{
"_id":"5d1231380a2a2b39a99c3ecf"},
"name":"bolket photo.png",
"colors":["#ffffff","#010101","#020202","#030303","#040404"],
}

现在我想要名称中有"bolket“和颜色为"#ffffff”的所有文档。

我尝试过这个过滤器:

代码语言:javascript
复制
filter := make(bson.D, 2)

    if f.Name != "" {
        filter = append(filter, bson.E{Key: "name", Value: bson.M{"$text": bson.M{"$search": f.Name}}})
    }

    if f.Color != "" {
        filter = append(filter, bson.E{Key: "colors", Value: bson.M{"$in": f.Color}})
    }

但是对于这个过滤器,我有这个错误:(BadValue) unknown operator: $text

如何创建动态过滤器?

EN

回答 1

Stack Overflow用户

发布于 2019-06-29 20:40:29

query op $text search 跨文档上的文本索引字段,您不能使用$text执行单个字段搜索

假设您已经在name上创建了一个文本索引,然后尝试:

代码语言:javascript
复制
  if f.Name != "" {
        filter = append(filter, bson.E{Key: "$text", Value: bson.M{"$search": f.Name}})
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56776608

复制
相关文章

相似问题

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