[英]Go/Mgo -> []byte in MongoDB, slice of unaddressable array
我得到了:
reflect.Value.Slice:片段无法寻址的数组
当我尝试使用mgo将sha256哈希添加到mongoDB时出错。 其他[]字节工作正常。
hash := sha256.Sum256(data)
err := c.Col.Insert(bson.M{"id": hash})
知道问题可能是什么? 我知道我可以将哈希编码为字符串,但这不是必需的。
该错误意味着bson将散列视为[]byte
,但它实际上是[32]byte
。 后者是一个数组值,并且不能使用反射包切片数组值。
修复很简单; 给bson一个hash
代替:
err := c.Col.Insert(bson.M{"id": hash[:]})
Go作者之一Ian Lance Taylor在此解释了这一点: https : //groups.google.com/d/msg/golang-nuts/ps0XdkIffQA/gekY8N0twBgJ
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.