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

mongodb - 插入 MongoDB:转换为 BSON 的文档大小会改变吗?

好的,我是 MongoDB 的新手,并且一直在读一本关于它的书,有些地方在说

“大于 4MB 的文档(转换为 BSON 时)无法保存到数据库”

好的...文件上限为 4MB?让我感到困惑的是他们在括号中所说的话:(当转换为 BSON 时):所以当转换为 BSON 时大小会发生变化?

因为几行之后它说:

“为了让你知道 4MB 是多少,战争与和平的整个文本只有 3.14 MB”

什么?好吧,现在我很困惑。帮我!

0 投票
1 回答
326 浏览

ruby-on-rails - mongo_mapper_acts_as_versioned 保存时间类型时失败

我正在尝试使用我分叉的https://github.com/Bramanga/mongo_mapper_acts_as_versioned gem 在我的 mongomapper 模型上设置版本控制。但是,每当我尝试保存我的 Finding 模型时,如果我尝试使用 Time 类型保存它就会失败(我必须使用它,因为 MongoDB 只支持 utc 时间,而不是日期)。

模型:

终端输出:

加载开发环境(Rails 3.0.10)

1撬(主)> 发现 = Client.first.findings.build

=> <#Finding _id: BSON::ObjectId('4fc67c8f4e484f267c000002'), client_id: BSON::ObjectId('4f7119884e484f25bd005ee8'), custom_fields: {}, legacy_attachments: [], tags: []>

[2] 撬(主)> find.save

=> 真

[3] 撬(主)>finding.found_date =“2012 年 12 月 24 日”

=> “2012 年 12 月 24 日”

[4] 撬(主)>find.save

BSON::InvalidDocument:当前不支持 ActiveSupport::TimeWithZone;请改用 UTC 时间实例。来自/home/bramanga/.rvm/gems/ruby-1.9.2-p290@actionlog/gems/bson-1.6.2/lib/bson/bson_c.rb:24:in `serialize'

我不知道如何解决这个问题。也许我只是做错了。有任何想法吗?

0 投票
1 回答
440 浏览

visual-c++ - 二进制数据的 BSON

如何将char* buffer具有二进制数据(从图像文件中读取)的文件转换为 BSON 格式。我正在vc++中尝试它。

0 投票
1 回答
477 浏览

c# - Representation = BsonType.Int64 不能与 Datetime 一起正常工作

我正在使用 Representation = BsonType.Int64 属性在我的类中装饰我的 DateTime 属性之一,以便它以日期的 Int64 表示形式存储在数据库中。

当我曾经将该属性存储为普通的 C# Datetime 并且没有将值设置为任何值时,它将 DateTime.Min 存储在数据库中。这是完美的,因为我正在从数据库中读取并执行 Query.LT 操作,如下所示:

它曾经很好地返回所有值。

现在我开始将它存储为 BsonType.Int64 并且 BsonType.Int64 中的 DateTime.Min 的等价物是“0”。我的 Query.LT("MyField", DateTime.Now)); 在使用 DateTime.Min 存储的所有日期上都失败。

关于如何解决这个问题的任何想法?

0 投票
1 回答
3808 浏览

mysql - 有没有人找到一种将 BSON ObjectId 值存储在 SQL 数据库中的有效方法?

我们正在将一些数据从 MySQL 迁移到 Mongo,并且一直在向我们的一些数据库表中添加额外字段,以获取迁移数据对象的ObjectId值。

目前我们将它们存储为 varchar(24) latin1_general_ci 可以正常工作。

然而,为了有效的存储/索引,我们可能应该转换回 12 字节的二进制值。不幸的是,MySQL 似乎只支持最多 8 个字节的本机整数。还有另一种选择 - 也许是二进制?

更新:我正在从 MySQL 迁移,但目前只有某些表。所以我首先在某个表的 Mongo 中复制对象。然后我回到 MySQL 中剩下的任何其他表,这些表具有对旧 MySQL 表 ID 的外键引用,并添加一个新的引用字段来存储 Mongo 对象的 ID。然后我将删除原始参考字段 BIGINT。

更新 2:我提出这个问题的原因是,在我们移动其他数据之前可能还要再过 12 个月(或永远不会),所以在此之前它会对实时 Web 应用程序产生性能影响。

0 投票
1 回答
701 浏览

mongodb - Can I save space in my Mongodb indexes by converting ASCII strings to bytes?

I have a lot of object with language code as a key field. Since both Java and Mongodb use UTF-8 natively and since the language codes are ASCII it seems to be that they should take 1 byte per character plus the \0 terminator. So the language code "en" should take only 3 bytes in the BSON object and in the index.

Is this correct? I am wondering whether I save anything by converting my fields to a byte array like:

before saving them to Mongodb with the Java driver?

0 投票
1 回答
451 浏览

javascript - Mongo DB shell,如何计算集合中的重复条目

Mongo DB shell(通过使用 JS 文件运行):

运行“查找”命令后,我必须找出结果中有多少重复行。由于集合可以有不同的 JSON,我必须解析每个 JSON 对象以进行比较。

简而言之,如何从 bson 对象中枚举键?

例如,如果我们查看以下 4 个 JSON 条目:

我想在比较时忽略“_id”和“日期”键。我想忽略“_id”,因为它是特定于 mongo 的,我想忽略“Date”,因为这是我的要求。

钥匙本身是多种多样的。在每个 JSON 文档中,键名各不相同,键值对的数量也各不相同。

在上述情况下,我希望将“1”和“3”识别为相同(重复)。

我该怎么做呢?

如何从 bson 对象中枚举键?

0 投票
1 回答
195 浏览

python - django-nonrel 指定 MongoDB BSON 元素名称来建模属性

在 C# 中,可以使用 MongoDB 驱动程序为数据模型中的每个属性定义自定义 BSONElement 名称,以缩短其存储名称,例如

有什么方法可以通过 django-nonrel 设置和定义的模型来实现这一点

这样属性“Current”将存储为“c”并在代码中引用为“Current”?研究在这方面做得不是很好。

0 投票
4 回答
26136 浏览

mongodb - 消息应用程序的 MongoDB 结构

我正在思考一个用于处理消息应用程序的良好文档结构。

我基本上需要三种(或四种)类型的对象:

  1. 用户(用户名、电子邮件、密码等)
  2. 联系人列表(包含不同的联系人或联系人组)
  3. 对话(对话是一些人之间的信息集合)
  4. 消息(包含消息正文、一些时间戳和创建者。)

我的想法是将联系人嵌入到用户文档中,并将消息嵌入到对话文档中:

1. 用户

2. 对话

你觉得这个架构怎么样?

我认为将它们分开会更好(因此每个文档都是自己的),因为每个文档都有不同的更新频率。但我真的没有任何经验,所以听到一些建议会很好:)

问候

0 投票
1 回答
454 浏览

mongodb - Haskell,mongodb,日期

如何从haskell将日期插入或自动插入mongodb?从 mongo 日期类型转换为 haskell 数据类型的最佳方法是什么?

比如说,在我插入博客文章记录(任何 haskell Web 框架)并且我想自动为每条记录加上日期戳的情况下。我该怎么办?问题更多是关于从 haskell 驱动程序中进行类型转换和 mongodb 日期类型创建。