繁体   English   中英

数据如何存储在MongoDB表中?

[英]How data is stored in MongoDB tables?

我正在通过将Mongodb与Java应用程序集成来学习它。 到目前为止,我已经将MongoDB配置为Windows服务,该服务将在Windows启动时运行,并且还能够成功连接,插入并从与Java应用程序集成的MongoDB中查找数据。 我了解每个数据在MongoDb中存储为Key:Document对,并在没有任何预定义架构定义的情况下水平缩放。 但是我仍然不清楚我的以下疑问:-

1)当我们说每个数据都存储为key:document对时,术语“ 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,称为“员工”,例如“ 57cd9d404a85c209a42ed747”。 请确认。

2)当我们说每个数据都存储为文档时,这到底意味着什么? 看起来是结构化还是非结构化? 我们不能使用某些客户端(如SQLDeveloper或Toad for RDBMS)查看存储的文档吗?

3)最后,存储和检索海量数据的速度更快

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"
    }
]

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

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

Mongodb旨在处理海量数据,因此在检索和存储数据方面比传统RDBMS更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM