繁体   English   中英

Go / Mgo - > MongoDB中的[]字节,不可寻址数组的片段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM