问题标签 [boltdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1050 浏览

python - 如何使用 Python 从 BoltDB 中读取数据?

我有一个 Go 网络应用程序,它将一些数据存储在内置的BoltDB.

有没有办法使用 Python 读取它的内容?

0 投票
1 回答
422 浏览

go - 尝试复制时boltdb出现意外故障地址

我有以下程序。

虽然打印lastSth字节片的地址和值很好,但将值复制到另一个字节片会产生以下错误。

请指教。

0 投票
1 回答
81 浏览

json - 如何确保我的所有写事务函数按顺序解决?另外,为什么 else 函数没有执行?

我正在尝试创建一个非常简单的 Bolt 数据库,名为“ledger.db”,其中包含一个名为“Users”的 Bucket,其中包含 Usernames 作为 Key 和 Balances 作为允许用户相互转移余额的值。我正在使用 Bolter 在命令行中查看数据库

有两个问题,都包含在这个传递函数中,问题在于传递函数。

第一个:传递函数内部是一个 if/else。如果条件为真,则按应有的方式执行。如果它是假的,什么都不会发生。没有语法错误,程序运行起来好像没有任何问题,只是不执行 else 语句。

第二:即使条件为真,当它执行时,它也不会更新数据库中各自的余额值。它会更新接收者的余额,但不会对发送者做同样的事情。数学运算完成,值被编组为与 JSON 兼容的格式。

问题是发件人余额未在数据库中更新。

一切都来自第二个“成功!” fmt.Println() 函数未处理

我尝试将“db.Update()”更改为“db.Batch()”。我试过改变 Put() 函数的顺序。我试过弄乱goroutines和defer,但我不知道如何使用它们,因为我对golang相当陌生。

我希望数据库从 Big:50000 Trig:40000 的初始值开始显示 Big:90000 Trig:0

相反,程序输出 Big:90000 Trig:40000

0 投票
0 回答
388 浏览

mongodb - 索引大文件的最佳方法

我有一个word:tag每行大约 100gb 的文件。我想索引这些word以轻松获取tag给定单词的 s 列表。

我想把它保存在boltdb上(主要是为了检查boltdb),但是随机写访问很糟糕,所以我的目标是首先以其他方式索引文件,然后将它全部移动到boltdb而不需要检查重复或反序列化tag名单的

因此,作为参考,如果我只是将文件读入内存(丢弃数据),我会得到大约 8 MB/s。

如果我使用代码写入 boltdb 文件,例如

我得到大约 300 Kb/s 的速度,这甚至不完整(因为它没有添加tag到 each word,只存储最后一次出现)。所以添加数组和 JSON 序列化肯定会降低速度......

所以我试了一下mongodb

而且我也得到了大约 300 Kb/s(尽管在Upsert这里$push处理附加到列表)。

我也尝试使用本地 MySQL 实例(索引在 上word),但速度慢了 30 倍......

0 投票
1 回答
299 浏览

database - golang 和 boltdb:使用闭包包装桶 ForEach 函数

在我的代码中,我使用大量重复代码来迭代bolddb 数据库中的嵌套桶。我想做一些重构,将这些重复的代码包装成新的函数。

我知道我需要为此使用闭包,但是额外的 db.View 层让我很头疼。

更准确地说,我想将 bucket.ForEach 函数包装成一个新函数。此函数创建数据库的视图事务,选择嵌套的存储桶并返回一个新函数,让我可以迭代给定的存储桶。

新创建的代码的代码签名将是这样的:

我要包装的代码:

我想创建一个新函数(使用闭包)来包装上面的代码并返回一个类似 foreach 的函数。

0 投票
0 回答
313 浏览

go - 无法加载包:C:\Go\src\"application"\db.go:10:2: 标准包“application”中的非标准导入“github.com/boltdb/bolt”

我是编码新手,所以我确定我的错误很简单。我正在尝试从 github.com/benbjohnson/roommate 安装应用程序。我已经安装了 go 并且能够获取文件。

但是,当我尝试构建室友文件时,我得到:“无法加载包:C:\Go\src\roommate\db.go:10:2: non-standard import "github.com/boltdb/bolt"在标准包装“室友”中

我尝试过更改 GOPATH。
我已经验证我的 GOROOT 和 GOPATH 不一样。

我的 Go 环境是:

0 投票
0 回答
93 浏览

python-3.6 - 如何使用python3.6更新boltdb中的条目

我想使用 python 更新 boltdb 条目。可用的 python 模块是什么?

我可以看到不同的 boltdb 驱动程序,例如 neobolt、bolt-python。

我没有得到关于它的适当文件。我想要更新操作的代码示例。

0 投票
1 回答
480 浏览

linux - 将 mmap 与 fsync 一起使用是否安全?(fsync 会使 mmap 上的某些页面失效吗?)

例如,我使用 mmap 以只读共享模式将文件映射到内存中。我根据它们在内存中的地址读取了文件上的一些数据。如果在那之后我调用 write 和 fsync 来更新或更改底层文件怎么办?内存中的数据也会改变吗?或者我需要调用其他一些系统调用来同步映射内存?我在阅读 BoltDB 的源代码时发现了这个问题。

0 投票
1 回答
238 浏览

go - How to detect the goroutine that occupies the lock?

I made a HTTP server with Echo and store data use storm and data model like this:

project1(bucket)

 device_type_1(bucket)

  device_1(kv)

  device_2(kv)

 device_type_2(bucket)

  device_1(kv)

  device_2(kv)

project2(bucket)

 ...

In addition to updating the database, there are some other things to do after receive HTTP request, so I use transaction like this:

A high probability of lock waiting while bolt transaction committing, and stack looks like this:

The question is how can I detect the goroutine that occupies the lock so I can check the whole operation sequence?

0 投票
1 回答
43 浏览

go - golang中的“未解决参考错误”

我目前正在使用 BoltDB 开发 Go 微服务。如何解决 golang 中的“未解决的引用错误”?

我有以下围棋代码:

当我执行代码时,我收到以下错误:

我究竟做错了什么?