2015-07-11 76 views
0

我正在学习MongoDb,下面是我的要求,我想写一个文档。需要你的帮助。MongoDB文档

要求:下面我有我的关系DB tabels,现在我想将其转换为文件:

  1. 经理(ID,姓名)
  2. 技术负责人(ID,姓名,经理标识)的manager_id是fk。
  3. 开发负责人(id,name,tech_lead_id)tech_lead_id是fk。

如何在文档中进行转换。

谢谢, Sudheer。

回答

1

尝试使用mongoexport命令。 以下是此命令的官方文档: mongoexport

此命令支持导出为CSV和JSON。您可以将您的结果转换为其中一种,并使用其他语言(我个人使用Python)将其转换为其他格式。


供您参考:

CSV:

mongoexport --db关系--collection经理--fields ID,名称--type = CSV --out manager.csv

JSON:

mongoexport --db关系--collection经理--fields ID,名称--out manager.json

+0

如果我用这个,而无需使用mongoexport创建一个新的文件,我能做到的,我如果是如何引用一个唯一的ID另一个表。 – Sudheer

+0

如果你不想使用mongoexport命令,你可以尝试用你自己的编程语言来做。我使用Python与PyMongo,我知道C#也有一个库,你也可以尝试。这些库充当客户端来查询数据库并获得您想要的结果。然后,您可以随意导出结果。 – DrKNa

1

从你的问题,我明白你想要得到一个基于它在RDBMS中想要的MongoDB数据库模式。第一件事是第一件事; MongoDB中的数据库模式设计不是RDBMS的直接转换。此外,与RDBMS数据库模式设计相比,在设计MongoDB中的数据库模式时,您会考虑不同的因素。 话虽如此,我会采取刺伤它提供这样做的一种方式:

经理:

{ _id : ObjectId("AAA"), name : "julie"} 

技术负责人:

{ _id : ObjectId("BBB"), name : "jack", manager : "julie"} 

开发负责人:

{ _id : ObjectId("CCC"), name : "john", techLead : "jack"} 

正如你在上面看到的,我已经预先加入了'manager'这个名字的数据&'techLead'并没有使用ObjectId。然而,它也可能是与_id象下面这样:

技术负责人:

{ _id : ObjectId("BBB"), name : "jack", manager : ObjectId("AAA")} 

在MongoDB中的架构设计,因素,如基数(一到多,一到数等)和数据访问模式(频繁执行的查询/更新)必须在选择是要引用还是非规范化并放置数据时加以考虑。没有一个正确的做法,都有他们的优点&缺点。但是,您可以选择一种最适合您应用需求的设计。

下面从蒙戈的帖子给出了例子真的很好的解释:http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1