我在查询我的 mongo 集合中提交的 UUID 时遇到问题。Mongo文档结构如下:
{
"_id": {
"$oid": "5acf7faff5f02b0001e9fda1"
},
"j": {
"$uuid": "d0459793-3ec0-71fd-319e-b959af081db6"
},
"s": "ok",
"creation_date": {
"$date": "2018-04-12T15:47:59.003Z"
}
}
我想获取文档,传递juuid(不是 ObjectID)。我创建了 mongo 连接,并获取了我的集合,然后我尝试执行此查询:
import (
mgo "gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
...
var job *Job
uid, _ := uuid.FromString(m.ID)
e := c.Find(bson.M{"j": uid.String()}).One(&job)
但e始终等于“未找到”。
m.ID是没有破折号的 uuid 字符串-,所以我将它转换为uuid.UUID.
其他查询c.Find(bson.M{"s": "ok"}).All(&jobs)工作正常,所以我确定连接和收集。
使用 golang 1.11 和 mongodb 3.6。
更新:
当我db.mycol.find()从 mongo 控制台执行时,结果是一个文档列表,例如:
{ "_id" : ObjectId("5acf5b0ac7fb0700010040ac"), "j" : BinData(3,"amOjUW1oQQ6dNsvLrQuDhg=="), "s" : "ok", "creation_date" : ISODate("2018-04-12T13:11:38.365Z") }
所以我试着像这样修改我的查询:
e := c.Find(bson.M{"j": bson.Binary{0x03, []byte(m.ID)}}).One(&job)
而且它仍然不返回文件。
潇潇雨雨
达令说
慕尼黑的夜晚无繁华
相关分类