问题标签 [mongo-go]

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 投票
0 回答
1763 浏览

go - Golang mongo-go-driver 在负载测试期间在 collection.InsertOne 上挂起/超时

我正在尝试使用 vegeta 加载测试一个简单的 go/mongo API,但我只是在POST端点测试期间超时。

Mongo 驱动https://github.com/mongodb/mongo-go-driver

处理程序

帐户.创建

InitDb(在 main.go 中调用)

测试GET端点按预期工作。唯一的问题是POST端点

做一个简单jq -ncM '{method: "POST", url: "http://localhost:8080/accounts", body: "Punch!" | @base64, header: {"Content-Type": ["applicati/json"]}}' | vegeta attack -format=json -rate=100 | vegeta encode的创建随机空文档将产生以下日志:

http服务器:

mongo(来自官方 docker-hub 的“香草”容器)

素食

如果我将-rate它降到 5 它可以工作,但它仍然在请求之间挂起 1 或 2 秒。从http服务器错误看来,go正在失去与mongo的连接关于如何进一步调试它的任何提示?

0 投票
1 回答
6161 浏览

mongodb - 在 Mongo-go-driver 中创建一个独特的字段

我对 Go 和 Mongodb 都很陌生,并且正在用 Go 和 Mongo 编写我的第一个 rest-api。我在 Go 中使用mongo-go-driver并具有以下结构Modal

我不想使用ObjectIdmongo-db 提供的默认字段作为我的主键,而是想将该Hostname字段作为主键。

如果我将Hostname字段类型设为primitive.ObjectID,那么hostname将是唯一的,但它的值将由 mongodb 随机生成字符串,而不是实际的主机名字符串值。

那么有没有办法我可以做到这一点。

0 投票
0 回答
207 浏览

go - 如何 bson.UnmarshalExtJSON 将时间字符串解析为 ISODate

我有原始的json:

我已经定义了结构:

如何实现它bson.UnmarshalExtJSON

0 投票
1 回答
377 浏览

go - 执行 UnmarshalExtJSON 时读取数组的请求无效

我正在尝试使用UnmarshalExtJSONfrom将扩展 JSON 解组为结构go.mongodb.org/mongo-driver/bson

它给了我一个错误:invalid request to read array

如何将这些数据解组到我的结构中?

MVCE:

我正在使用 go 版本 1.12.4 windows/amd64

0 投票
1 回答
730 浏览

go - 如果我的密钥都被命名为“密钥”,如何从 BSON 获取 JSON?

我正在尝试从数据库中读取,然后将结果作为 json 返回给用户。

发生的事情是我得到的输出如下:
[{"Key":"foo","Value":"bar"}]

当我想得到:
"{"foo":"bar"}"

我如何获得前者?

示例:(Raw未显示从数据库读取并转换为字符串)

0 投票
1 回答
2897 浏览

node.js - mongo-go-driver 在使用 MongoDB Atlas 时因服务器选择超时而失败

去版本:1.12.5

我有这个使用 node.js mongo 驱动程序的代码

哪个工作正常。

使用mongo-go-driver,我这样做:

但这会引起恐慌:

我没有在容器/docker 中运行它。

0 投票
2 回答
4606 浏览

mongodb - Mongo-go如何使用arrayFilter在“对象数组中的对象数组”中查找elem

让我们想象一个像这样的 JSON:

例如,我需要使用 mongoDb 和 Golang 驱动程序 Mongo-go 更新第一个人生成就(id 为 1)

问题出在嵌套级别。我可以通过 $ mongoDb 运算符获取一些数组元素,但在这里我需要通过活动范围(生活、运动、学术等)和 _id 成就领域来识别每个用户的成就。所以我需要在其他对象数组中的对象数组中进行搜索。

这就是我所做的(无论如何它都不起作用)

我希望此查询仅更新“id”和“范围”字段指定的一个元素。可能是我错误地使用了 arrayFilters,或者我错误地设置了 FindOneAndUpdate 函数的参数。现在它不会抛出任何错误,也不会更新文档。请帮我

0 投票
0 回答
2266 浏览

mongodb - 无法使用 mongo go 驱动程序使用 mongodb 事务

我创建了一个 mongodb 副本集。我能够从 mongo shell 运行事务。但是当我尝试使用 mongo-go-driver 执行此操作时,我总是会收到此错误(IllegalOperation) Transaction numbers are only allowed on a replica set member or mongos。我不确定我哪里出错了。我以此作为参考https://github.com/simagix/mongo-go-examples/blob/master/examples/transaction_test.go

我这样创建客户端

我可以连接到单个 mongodb 实例,而不是副本集。这是我要运行的事务

有什么我想念的吗。有没有其他的例子可以参考。感谢您的帮助/建议。

0 投票
1 回答
1090 浏览

go - mongo-go-driver 中的自定义 UnmarshalBSON

我希望有某种“钩子”,只要我从数据库中获取特定类型的对象,它就会运行。我认为该Unmarshaler接口非常适合,但是...如何在不自己手动解组每个字段的情况下实现该接口?

我想过做这样的事情:

如果不使用反射 pkg 手动解组字段,我怎么能做到这一点?

0 投票
0 回答
50 浏览

go - 如何在本地时区读取日期时间

我在 golang 中使用 github.com/mongodb/mongo-go-driver 驱动程序我的代码结构:

当我插入一个文档时,它是作为 ISODate() 插入的,它看起来像这样:

从代码中,当我收到文件时,他在 UTC 时区读取。我想在本地时区系统中转换日期。有什么办法可以用驱动程序做到这一点