作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从订单中获取所有文件 在哪里 :
status == 'paid' AND status == 'delivered' AND
closed_at BETWEEN startDate AND endDate ;
我已经使用以下代码访问了我的 mongoDB 连接:
package main
import (
"context"
"fmt"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
"time"
)
func main() {
mx, err := time.LoadLocation("America/Mexico_City")
endDate := time.Now().In(mx)
startDate := endDate.AddDate(0, 0, -1)
if err != nil { fmt.Println(err); return }
client, err := mongo.NewClient(options.Client().ApplyURI("mongodb+srv://<userName>:<pass>@someDomain/orders"))
if err != nil { fmt.Println(err); return }
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
err = client.Connect(ctx)
if err != nil { fmt.Println(err); return }
defer client.Disconnect(ctx)
err = client.Ping(ctx, readpref.Primary())
if err != nil { fmt.Println(err); return }
orders := client.Database("orders").Collection("orders") //here I want to filter with the status 'paid' and 'delivered' and closerd_at between dates.
}
func Bod(t time.Time) time.Time {
year, month, day := t.Date()
return time.Date(year, month, day, 0, 0, 0, 0, t.Location())
}
我对文档还有一件事表示怀疑,
closed_at
有一个格式日期,如:
2020-04-23T21:28:46.642+00:00
还有我的
from
和
to
日期的格式如下:
startDate: 2020-08-06 00:00:00 -0500 CDT
endDate: 2020-08-07 00:00:00 -0500 CDT
最佳答案
这是我的解决方案:
query := bson.M{
"status": bson.M{"$in":[]string{"paid","delivered"}}, //only status paid and delivered
"closed_at": bson.M{"$gt": from, "$lt": to}, //between dates
}
cursor, err := client.Database("orders").Collection("orders").Find(ctx,query)
引用答案:
MongoDB Compass Filter expression to Go bson.M expression
关于mongodb - 获取 MongoDB 文档 WHERE 状态和日期之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63309506/
我是一名优秀的程序员,十分优秀!