数据如何存储在MongoDB表中?

时间:2016-09-11 17:00:08

标签: java mongodb

我通过将它与我的Java应用程序集成来学习Mongodb。到目前为止,我已将MongoDB配置为Windows服务,该服务在我的Windows启动时运行,并且我能够成功地连接,插入和查找与我的Java应用程序集成的MongoDB中的数据。据我所知,每个数据都存储为MongoDb中的Key:Document对,并且水平扩展,没有任何预定义的模式定义。但是我仍然不清楚我的疑虑: -

1)当我们说每个数据都存储为密钥:文档对时,这里的术语“密钥”是什么意思?它是我输入数据的主要值还是这个'key'意味着一些唯一的记录id(包含RDBMS中的随机数)。例如: -

DBCollection table = db.getCollection("employee");
        BasicDBObject document = document = new BasicDBObject();
        document.put("EmpId", "1001");
        document.put("Name", "Vijay Kumar");
        document.put("Gender", "Male");
        table.insert(document);

在这里,如果我没错,那么EmpId不是关键,对吧?密钥将是MongoDB表中此数据的唯一ID,称为'employee',如'57cd9d404a85c209a42ed747'。请确认。

2)当我们说每个数据都存储为文档时,究竟是什么意思?它看起来像是一个结构化的形式还是非结构化的?我们不能使用SQLDeveloper或Toad for RDBMS等客户端看到存储的文档吗?

3)最后,存储速度更快,以及使用大量数据进行检索

2 个答案:

答案 0 :(得分:1)

MongoDB创建一个唯一的ID来引用表中的特定文档。

1:

  

你在这里谈论的关键是一个引用变量来选择一个   数据被调用时的数据。所以我们说key-value pair。所以EmpId是   键和1001是值。或者您可以将密钥视为名称   表格中的列,1001作为字段。

2:

  

该文档是键值对的集合。例如:

{
    "EmpId", "1001",
    "Name", "Vijay Kumar"
}

这可以视为一个文件。

3:

  

要存储大量数据,您需要以数组形式存储文档。   例如,您可以使用JSONArray object

对于eaxmple:

[
    {
        "EmpId", "1001",
        "Name", "Vijay Kumar"
    },
    {
        "EmpId", "1002",
        "Name", "Emil John"
    }
]

答案 1 :(得分:0)

通常,数据在Mongodb中存储为二进制JSON,并且为插入的每个文档创建一个唯一的ID(默认名称_id)。现在,当您将其与传统RDBMS进行比较时,请将key作为列和值作为其数据。因此,每个文档实际上意味着关系数据库的特定行,而集合意味着表。

MongoDB的工具很少。我特别使用MongoChef。

Mongodb旨在处理大量数据,因此在检索和存储数据时,它比传统RDBMS更快。