我通过将它与我的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)最后,存储速度更快,以及使用大量数据进行检索
答案 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更快。