对MongoDB和Pooling以及Bson语法和Document格式感到困惑

时间:2018-10-26 22:14:38

标签: java database mongodb bson

我才刚刚开始使用MongoDB(2小时),我对一些事情感到非常困惑。

首先,我读到不需要MongoDB连接池,因为它已经为您做到了。这是真的吗?

其次,我正在集合中创建配置文件,其中一些配置文件可能包含到期日期和密码等信息,而有些则没有。是否可以仅将其文档设置为包含这些文档并仍然是同一集合的成员?

第三,我正在为每个文档使用UUID,这是检索特定文档的方法吗?

public static Document getPlayer(String uuid) {
    return players.find(Document.parse("{uuid : " + uuid + "}")).first();
}

语法正确吗?我目前没有运行代码的能力,因为我没有MongoDB服务器。

谢谢您的帮助。.我目前正在阅读文档,并学到更多。

1 个答案:

答案 0 :(得分:1)

  

首先,我读到不需要MongoDB连接池,因为它   已经为您做到了。这是真的吗?

每创建一个mongoClient时,就会有一个关联的连接池。 基本上不需要您自己处理这些连接,而是在整个应用程序中使用单个客户端对象。您可能要在这里查看connection文档。

  

第二,我正在集合中创建配置文件,其中一些   个人资料可能包含有效期,密码等信息,   不要。是否可以仅将其文档设置为包含这些内容并且   仍是同一收藏集的成员吗?

在MongoDB中这绝对是可能的。它允许您将多态数据存储在单个集合中。

  

第三,我正在为每个文档使用UUID,这样   检索特定文档。

看看在this doc中完成的读取操作。

示例:

collection.find(
    new Document("stars", new Document("$gte", 2)
          .append("$lt", 5))
          .append("categories", "Bakery")).forEach(printBlock);