为了账号安全,请及时绑定邮箱和手机立即绑定

在 mongo-go-driver 中为 .FindOne 创建过滤器

在 mongo-go-driver 中为 .FindOne 创建过滤器

Go
温温酱 2023-06-26 18:03:24
我正在尝试检查集合以查看是否至少有一个文档与一组特定值匹配。我对 MongoDB 和 Go 还很陌生,我相信这更多是我缺乏经验的问题。以下是来自 Studio 3T 的示例查询,我尝试使用 mongo-go-driver 运行它:db.getCollection("events").find(    {         "event.eventType" : "OSR",         "context.vehicleId" : NumberInt(919514),         "ts" : {            "$gte" : ISODate("2019-06-21T21:38:43.022+0000")        }    }).limit(1);看来该context.FindOne方法会做我想要的事情(并且消除了对 的需要.limit(1))。我认为可以直接将其“移植”到 Go 和 mongo-go-driver。我可以让这项工作正常进行,例如我有以下内容可以找到所有 OSR:var query = &bson.D{        {"event.eventType", "OSR"},    }result := bson.D{}e := collection.FindOne(context.TODO(), query).Decode(&result)这将返回给我一份文件。现在,如果我想包含该vehicleId值,我会将其更新query为:var query = &bson.D{        {"event.eventType", "OSR"},        {"context.vehicleId", 919514},     }没有文件被退回。我还没有费心去扩展query该ts领域。我预计至少仍会返回一份文档,但什么也没有显示。有人对我做错的事情有一些提示、建议或指导吗(或者我怎样才能做得更好)?
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

不太确定,但是你尝试过bson.M用 代替 吗bson.D?


看来它至少对我有用。


query := &bson.M{

  "event.eventType": "OSR",

  "context.vehicleId": 919514, 

}

查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号