mongodb之MongoDB Compass Filter表达式转换为Go bson.M表达式

jackei 阅读:52 2025-06-02 22:19:02 评论:0

我在上有一个过滤器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
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号