登录
首页 >  Golang >  Go问答

MongoDB Compass Filter 表达式转 Go bson.M 表达式

来源:stackoverflow

时间:2024-02-21 11:51:25 355浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《MongoDB Compass Filter 表达式转 Go bson.M 表达式》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我在 mongodb compass 过滤器上有一个过滤器,位于两个日期和两个可能值的字符串之间,如下代码所示:

{closed_at: {$gt: isodate('2020-07-01t00:00:00.700+00:00'),$lt: isodate('2020-07-30t00:00:00.700+00:00')}, status: { $in: ["paid", "delivered"] }}

(如果在 go 上过滤相同的值,我希望得到相同的 1256 个文档)

现在我需要将此过滤器转换为有效的 bson.m 表达式,找不到提交的“status”字符串的技巧,有此查询表达式但有错误消息:

query := bson.M{
    "status" : ["paid", "delivered"], //Error: Invalid array bound '"paid"', the value must be representable by 'int' type
    "closed_at": bson.M{"$gt": from, "$lt": to},
}

cursor, err := client.Database("orders").Collection("orders").Find(ctx,query)

¿声明状态字段并将值查询传递给find方法的正确方法是什么?


解决方案


您没有完全翻译查询:

"status": bson.M{"$in":[]string{"paid","delivered"}}

理论要掌握,实操不能落!以上关于《MongoDB Compass Filter 表达式转 Go bson.M 表达式》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>