我正在尝试读取mongodump生成的集合转储.该文件是几千兆字节,所以我想逐步读取它.
我可以用这样的东西读取第一个对象:
buf := make([]byte, 100000)
f, _ := os.Open(path)
f.Read(buf)
var m bson.M
bson.Unmarshal(buf, &m)
Run Code Online (Sandbox Code Playgroud)
但是我不知道消耗了多少buf,所以我不知道如何阅读下一个.
这可能与mgo有关吗?
我设法用以下代码解决了这个问题:
for len(buf) > 0 {
var r bson.Raw
var m userObject
bson.Unmarshal(buf, &r)
r.Unmarshal(&m)
fmt.Println(m)
buf = buf[len(r.Data):]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
959 次 |
最近记录: |