我正在嘗試檢查集合以查看是否至少有一個文檔與一組特定值匹配。我對 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)這將返回給我一份文件?,F在,如果我想包含該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,?
}
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消