我正在尝试检查集合以查看是否至少有一个文档与一组特定值匹配。
我对 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领域。
我预计至少仍会返回一份文档,但什么也没有显示。有人对我做错的事情有一些提示、建议或指导吗(或者我怎样才能做得更好)?
开满天机
相关分类