问题标签 [bson]

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 回答
12416 浏览

python - 无法从 JSON 反序列化 PyMongo ObjectId

我似乎无法使用 BSON json_util反序列化我的 MongoDB JSON 文档。

json.loads 函数在ObjectId()字符串上阻塞。我了解 json_util 能够处理 MongoDB 的 ObjectId 格式并转换为可用的 JSON。

Python代码:

我得到解码器异常:

我错过了什么吗?

0 投票
1 回答
153 浏览

java - 返回标志值或 BSON ObjectId

我正在使用 MongoDB 编写一个 Java 程序。我有一个类,其功能可能具有以下三种结果之一:

  1. 在 MongoDB 集合中为函数的输入寻找合适的对象,找到它,并返回它的 ObjectId。
  2. 同上,但是没找到;创建它,并返回它的 ObjectId。
  3. 输入结果不适合开始;向调用者返回某种标志值,指示忽略该输入。

前两种情况很简单。我不确定我可以为第三个返回什么样的价值。像 000000000000 这样的虚拟 ObjectId 被视为无效而被拒绝。

我能想到的解决方案是将 ObjectIds 作为字符串返回,然后再将它们转换回 ObjectIds(然后我可以为第三种情况返回我想要的任何标志类型的字符串),或者创建一个实际上意味着没有结果的虚拟数据库项(但是我在哪里跟踪它的 ObjectId,这样我就不必继续查找它了?)。关于如何解决这个问题的任何更好的想法?

0 投票
4 回答
6103 浏览

php - MongoDB 及其驱动程序能否保留文档元素的顺序

我正在考虑使用 MongoDB 来存储包含键/值对列表的文档。存储它的安全但丑陋和臃肿的方式是

但是文档元素在底层 BSON 数据结构中本质上是有序的,因此原则上:

应该足够了。但是我希望大多数语言绑定会将这些解释为关联数组,因此可能会打乱顺序。所以我需要知道的是:

  • MongoDB 本身是否承诺保留第二种形式的项目排序。
  • 语言绑定是否有一些 API 可以提取它的有序形式——即使通常的“方便”API 返回一个关联数组。

我在这里最感兴趣的是 Javascript 和 PHP,但我也想了解其他语言。感谢您提供任何帮助,或者只是指向我可以使用 RTM 的一些文档的链接。

0 投票
2 回答
6413 浏览

php - 将 Mongo 游标正确解析为 PHP

将 MongoCursor 转换为 PHP 时,我使用此脚本。此处介绍了 StackOverflow SO

使用上面的方法,结构是相同的,但是 _id 是,而使用下面的脚本会产生以下包含的结果。

不幸的是,这会导致实际对象被嵌入到带有来自 Mongo 的 _id 的数组中。像这样 :

由于我将此对象传递给另一个服务以处理 _id 是未知的。

如何说服 PHP 驱动程序正确解析对象?

0 投票
1 回答
353 浏览

json - 不支持的类型 UString 使用 Aeson 和 MongoDB BSON

我正在尝试使用 Data.Aeson.TH derivedJSON 为 MongoDB Data.Bson 生成 ToJSON 和 FromJSON 实例。

目前我正在使用:

在编译时会生成以下错误:

我认为这里的问题是 BSON 文档中的字符串是 Ustring。我需要将 BSON 数据中预期的 UString 转换或以其他方式映射到另一种 String 类型......但不知道如何。

0 投票
2 回答
3925 浏览

c# - 从 MongoDB 查询嵌套对象

我在 SSIS 中创建了一个脚本来从 MongoDB 检索数据。虽然查询常规文档没有任何问题,但我不确定如何从嵌套文档中检索值。例如,扩展的“地址”包含“国家”、“州”、“城市”、“街道”和“邮编”。我只对检索“国家”(字段)值感兴趣。从理论上讲,我理解它应该类似于“Address.Country”,但我不知道如何在我的代码中实现它。实现这一目标的最佳方法是什么?

这是检索所有其他文档的代码:

0 投票
1 回答
7262 浏览

json - 如何使用 MongoDB C++ 驱动程序将字符串转换为 BSON?

toString类似,有没有一种方法可以将字符串转换为 BSON 对象?我需要使用 C++ 驱动程序删除文档,删除函数希望查询具有 BSON 对象。

0 投票
0 回答
397 浏览

c# - MongoDB C# 字段名称作为值

假设我在 MongoDB 中有一个动态模式,并且其中一个 BSONDocuments“其他”可以有不同的文档和值。例如:

另一条记录只有一个文件:

我正在将此数据导出为关系格式,并希望将 Page、Title、Author 导出为名为“Other”的字段中的不同值,并将 25、WC、Dickens 导出为名为“Other Value”的字段中的对应值。

换句话说,我想遍历“其他”中的可能文档,并将这些文档的名称分配给一个变量,并将这些文档的值分配给另一个值。而“其他”不是一个数组......

实现这一目标的最佳方法是什么?

谢谢,

帕夏

0 投票
1 回答
767 浏览

c++ - 二进制到文本编码、非打印字符、协议缓冲区、mongodb 和 bson

我有一个候选键(mongodb 候选键,__id),它在协议缓冲区中如下所示:

自然,我不能ParseToString(std::string)在我的 bson 文档中使用协议缓冲区编码字符串(via),因为它可以包含非打印字符。因此,我使用 ascii85 编码对数据进行编码(使用这个库)。我有两个问题。

  1. b85 编码 bson 安全吗?
  2. bson 的二进制类型是什么?有什么方法可以使用 mongodb API 调用将我的(二进制)字符串植入该字段,还是只是语法糖来表示需要以某种形式处理的值类型(即,不是本机MongoDB实体)?

编辑

api的append binary节目数据被编码为十六进制(OMG!),因此 base85 更节省空间(在我的情况下,每条记录 22 个字节)。

0 投票
2 回答
720 浏览

ruby-on-rails - 在 Rails 应用程序中使用来自 mongodb 备份的数据...即使用 ruby​​ 将 BSON 转换为 JSON?

我有一堆来自 mongodb 备份的数据,我想将它们导入一个新的 rails 应用程序(正在使用 mongo 进行开发,现在切换回 activerecord)。

我已经尝试了明显的方法BSON.deserialize(doc),但它只返回第一条记录。任何想法我做错了什么?有没有一种简单的方法可以将 BSON 文件转换为 JSON 或其他可用格式以引入 MySQL?

编辑:嗯,这几乎不是最好的方法,我敢肯定......但我已经设法使用 ruby​​ shell 脚本(利用bsondumpmongodb 的一部分)转换它们。

更好的解决方案仍然值得赞赏。