如何加入MongoDB中的字段?

时间:2018-01-19 14:58:30

标签: linux database bash mongodb

我正在使用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。

1 个答案:

答案 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/