微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在MongoDB中,子文档实际上是单个BSON文档吗?

如何解决在MongoDB中,子文档实际上是单个BSON文档吗?

子文档仅仅是MongoDB BSON文档中的一小部分,还是它们实际链接到其“父”文档的BSON文档?

解决方法

实际上,没有链接。 AFAIK,无论嵌套性质如何,它都被视为单个JSON文档并以BSON形式存储在磁盘中。

This answer将有助于进一步了解内部知识,例如namespace,data,tree structure,deletion,etc

,

没有链接。文档是键值映射,其中可能包含子映射。整个树都存储为单个实体。

{foo: {bar: 1}}

{bar: 1}部分是“嵌入式文档”或“子文档”。

给出:

{foo: {bar: {baz: 2}}}

{bar: {baz: 2}}{baz: 2}都可以称为嵌入式文档或子文档。

“ BSON文档”一词含糊不清,因为它可以指代:

  • 序列化为BSON的如上定义的文档的字节序列(键值映射)。在这种情况下,序列化的是一个完整的实体,BSON中存在的嵌入式文档的字节本身并不是有效的,完整的BSON文档。
  • 恰好在与MongoDB相关的软件中使用的任何键-值映射,包括任何形式的格式,包括各种编程语言本机的数据结构(即,不是二进制的,因此根本不是BSON)。

严格来说,第一种感觉是正确的,但是第二种感觉很常用,偶尔会引起混乱。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。