Смущает MongoDB и Pooling, а также синтаксис Bson и форматы документов - PullRequest
0 голосов
/ 27 октября 2018

Я только начал использовать MongoDB (через 2 часа), и меня очень смущают некоторые вещи.

Во-первых, я прочитал, что пул соединений MongoDB не нужен, поскольку он уже делает это для вас. Это правда?

Во-вторых, я создаю профили в коллекции, некоторые из профилей могут иметь такую ​​информацию, как даты истечения срока действия и пароли, а некоторые - нет. Можно ли просто установить их документ так, чтобы он содержал их, и при этом оставаться членом той же коллекции?

В-третьих, я использую UUID для каждого документа, будет ли это способ получения конкретного документа:

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

Правильный ли синтаксис? В настоящее время у меня нет возможности запустить код, так как у меня нет сервера MongoDB.

Спасибо за вашу помощь. В настоящее время я читаю документы и изучаю все больше и больше.

1 Ответ

0 голосов
/ 27 октября 2018

Во-первых, я прочитал, что пул соединений MongoDB не нужен, так как уже делает это для вас. Это правда?

Каждый раз, когда вы создаете mongoClient , ему назначен пул соединений. По сути, вам не нужно обрабатывать эти соединения самостоятельно, но использовать один клиентский объект во всем приложении. Возможно, вы захотите взглянуть на документ connection здесь.

Во-вторых, я создаю профили в коллекции, некоторые из профили могут содержать такую ​​информацию, как даты истечения срока действия и пароли, некоторые не делайте. Можно ли просто установить их документ, содержащий эти и быть членом той же коллекции?

Это абсолютно возможно в MongoDB. Это позволяет хранить полиморфные данные в одной коллекции.

В-третьих, я использую UUID для каждого документа. чтобы получить конкретный документ.

Посмотрите на операции чтения, выполненные в этом документе .

Образец:

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