我正在使用MongoDB中的大型数据集,它具有以下结构:
{ "_id" : "00-872@rambler.ru", " pass" : "00-87", "field4" : 872, "field5" : 123456, "pass2" : "00-872", "pass3" : "00-8721" }
正如你所看到的,这是一团糟。
我希望重新排列整个集合,因此它只有两个字段(_id和pass)。但是,为此,我需要在其他字段中加入所有其他值,并将它们全部放在第二个字段下。
所以在这种情况下,以下内容:
"field4" : 872, "field5" : 123456, "pass2" : "00-872", "pass3" : "00-8721"
可以位于' pass'之下。
例如:
{ "_id" : "00-872@rambler.ru", " pass" : "00-87", "872", "123456", "00-872", "000-8721" )
有一种简单的方法吗?
我想在pass字段中保留现有值。
MongoDB版本3.4.10。
答案 0 :(得分:0)
您可以使用DBRefs存储文档之间的引用。
MongoDB不支持联接。在MongoDB中,一些数据被非规范化, 或者与文档中的相关数据一起存储以消除对连接的需要。 但是,在某些情况下,将相关信息存储在其中是有意义的 单独的文档,通常在不同的集合或数据库中。
MongoDB应用程序使用两种方法之一来关联文档:
- 手动参考,将一个文档的_id字段保存在另一个文档中作为参考。然后你的应用程序可以运行一个 第二个查询返回相关数据。这些参考文献很简单 并且足以满足大多数用例。
- DBRefs是使用第一个文档的_id字段,集合名称和的值从一个文档到另一个文档的引用 可选地,它的数据库名称。通过包含这些名称,DBRefs 允许位于多个集合中的文档更容易 与单个集合中的文档链接。 要解析DBRefs,您的应用程序必须执行其他查询以返回引用的文档。很多司机都有 自动形成DBRef查询的辅助方法。该 drivers 1不会自动将DBRef解析为文档。 DBRefs提供了一种通用格式和类型来表示文档之间的关系。 DBRef格式还提供 用于表示文档之间链接的常用语义 数据库必须与多个框架和工具交互。
更多信息:https://docs.mongodb.com/manual/reference/database-references/