问题标签 [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 投票
1 回答
707 浏览

mongodb - 如何在更改流监视 api(mongo-go-driver)中设置 batchSize?

我正在使用changestreamopt.BatchSize. 但这不起作用,发生了这个错误:BSON field '$changeStream.batchSize' is an unknown field

示例 API 调用

0 投票
3 回答
2239 浏览

mongodb - 将字符串切片转换为 BSON 数组

我正在尝试使用 Go 将数组插入到 MongoDB 实例中。我[] string在 Go 中有切片,并希望将其转换为数组以使用驱动程序将其BSON传递给数据库。github.com/mongodb/mongo-go-driver

这会遍历我输入数据的每个元素并尝试将其附加到BSON数组中。然而,与Append()失败的线与panic: document is nil. 我应该如何进行这种转换?

0 投票
1 回答
5151 浏览

go - 如何使用 MongoDB 的 Go 驱动程序批量写入\UpdateMany

我正在从 mgo 驱动程序迁移,我的函数如下所示:

这会在循环中对单个文档进行一些$push和更新。$set我应该如何使用官方驱动程序执行此操作?是collection.BulkWrite()还是collection.UpdateMany()?文档是如此模糊,我不知道如何使用它们以及它们有什么区别。任何帮助,将不胜感激。

0 投票
1 回答
14392 浏览

mongodb - mongodb-go-driver/bson 结构到 bson.Document 编码

我正在使用https://github.com/mongodb/mongo-go-driver并且目前正在尝试实现此类结构的部分更新

例如,如果我有

然后我希望存储文档中唯一的“标题”字段将被更改。

我需要写类似的东西

问题是我不想用bson.EC.String(...)or手动编码每个非空字段bson.EC.Int64(...)。我尝试使用bson.EC.InterfaceErr(...)但出现错误

无法为类型 *models.NoteUpdate 创建元素,请尝试使用 bsoncodec.ConstructElementErr

不幸的是,bsoncodec 中没有这样的功能。我发现的唯一方法是创建包装器

并像使用它一样

它可以工作,但是是否可以使用 bson/bsoncodec 文档构建器来实现相同的效果?

UPD。我的问题的完整上下文:我编写了 REST 端点以部分更新“Note”文档(存储在 MongoDB 中)。我现在拥有的代码:

我想要的代码

不想拥有的代码

所以,确切的问题是 - 有没有办法根据bson标签动态构建 *bson.Document(没有像我的 SetWrapper 这样的预定义包装器)?

0 投票
1 回答
10229 浏览

mongodb - 如何使用官方 mongo-go-driver 从 mongo 文档中过滤字段

如何使用 mongo-go-driver 过滤字段。用 findopt.Projection 尝试过,但没有成功。

最后,我想抑制字段“_id”。但文件没有改变。

0 投票
1 回答
2315 浏览

mongodb - bulkwrite 不支持使用 mongo-go-driver 进行多文档事务

我正在使用 mongo-go-driver 0.0.18 构建一个由“NewUpdateManyModel”和几个“NewInsertOneModel”组成的批量写入。我的 mongo 服务器是带有副本集的 atlas M10。我构建了一些 goroutine 来测试事务是否是原子的,结果表明每个批量写入都不是原子的,它们会相互干扰。我想知道 mongo-go-driver 是否支持多文档事务?

0 投票
0 回答
504 浏览

mongodb - 无法将(包含指针的结构)类型转换为 *bsonx.Document

我最近开始使用官方的 mongo-go-driver (github.com/mongodb/mongo-go-driver),看来我不能在我的结构中使用指针-> 例如:

如果初始化此结构并尝试将其插入数据库,则会收到错误消息:

深入研究图书馆,我发现了这个错误:

这是否意味着指针根本无法使用?如果是这样,有谁知道为什么不支持指针?

使用不同的类型会产生相同的结果。使用整数类型时的示例错误:

0 投票
1 回答
1528 浏览

go - Golang mongo-go-driver Beta 1 , using greater than operator

I have been trying to get records greater than an _id provided The code is below

But iam always getting null values. I think i need to convert that id to object id But iam not sure how to do it in latest release There is a bson.TypeObjectID shown in predictions . Can someone please provide some details to do this.? Thanks

0 投票
1 回答
1519 浏览

mongodb - 如何使用 mongo-go-driver 运行 mongo 命令?

您好 :) 我正在开发一个链接到 mongo DB 的 golang 应用程序(我使用官方驱动程序:)mongo-go,这是我的问题,我想执行这个函数

我在 godoc 上看到 aDatabase.RunCommand()存在,但我不确定如何使用它。如果有人可以提供帮助:) 谢谢

0 投票
1 回答
514 浏览

mongodb - 使用 mongo-go-driver 与 MongoDB 的数据不一致

FindOneAndReplace 可能会也可能不会替换 MongoDB 中的文档。响应表明操作成功,但查看 MongoDB 它根本没有更新。

MongoDB 服务器版本是 MongoDB 服务器版本:3.2.0 此错误在 Ubuntu 16.04 和 macOS Mojave 中可重现。目标主机是 Azure CosmosDB。

驱动版本为 mongo-go-driver@v0.0.17

我希望响应反映 MongoDB 服务器中数据的实际状态。

假设我想删除 fuid 的文件元数据05ce38e7-a29a-485f-bf20-eef3501867f0

我收到此回复,表明它已被删除。响应解码自result := collection.FindOneAndReplace(context.Background(), filter, documentToUpdate, option.ReturnDocument(mongoopt.After))

但如果我转到 Azure CosmosDB 或本地服务器,它仍然存在。 截屏