gpt4 book ai didi

mongodb 获取最后 30 分钟前插入的项目

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:34 25 4
gpt4 key购买 nike

我想检查在过去 30 分钟内是否使用 mongodb 在 golang 中添加了项目。

这是我的类型模型:

type PayCoin struct {
ID bson.ObjectId `json:"id" bson:"_id"`
OwnerID bson.ObjectId `json:"owner_id" bson:"owner_id"`
PublicKey string `json:"public_key" bson:"public_key"`
PrivateKey string `json:"-" bson:"private_key"`
QrCode string `json:"qrcode" bson:"-"`
ExchangeRate uint64 `json:"exchange_rate" bson:"exchange_rate"`
DepositAmount float32 `json:"deposit_amount" bson:"deposit_amount"`
Received uint64 `json:"received" bson:"received"`
Completed bool `json:"-" bson:"completed"`
CreatedAt time.Time `json:"created_at" bson:"created_at"`
UpdatedAt time.Time `json:"updated_at" bson:"updated_at"`
}

这是我当前的功能:

func (s *Storage) CoinPayExistOperation(ownerID bson.ObjectId) (*models.PayCoin, error) {
collection := s.getCoinPay()
var lt models.PayCoin
timeFormat := "2006-01-02 15:04:05"
now := time.Now()
after := now.Add(-30*time.Minute)
nowFormated := after.Format(timeFormat)


err := collection.Find(bson.M{"owner_id": ownerID, "created_at": nowFormated}).One(&lt)
return &lt, err
}

我想检查数据库中是否存在在过去 30 分钟内添加的项目,我当前的代码不返回任何项目,并且数据库中存在。我该怎么做?

最佳答案

这里有两件小事要解决。

  • 如果你想获取各种记录,你应该将单词 one 更改为 all
  • 您正在做一个过滤器,其中您的数据时间大于,为此,您必须使用比较查询运算符 $gt

这里是您的查询的示例

collection.Find(bson.M{"owner_id": ownerID, "created_at": bson.M{"$gt": nowFormated}}).All(<)

注意:因为这将返回多条记录,请记住将 lt 更改为一个片段。

关于mongodb 获取最后 30 分钟前插入的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54618682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com