
Artem
11.02.2018
10:47:06
как только ты говоришь use databasename по факту, монга начинает использовать новую бд, даже если ее не было как таковой

AP?
11.02.2018
11:16:53
Привет.
Если использую нативный драйвер, считается ли нормальной практикой открытие соединения к БД перед запросом и закрытие после?
Или же лучше при инициализации приложения один раз подключиться и далее прокинуть глобальный объект БД в нужные места?
Читал, что монга может периодически отваливаться, ну и опять же - не те объёмы данных, чтобы стараться сильно экономить время на процедуре открытия/закрытия соединения с БД.

Dim
11.02.2018
11:54:19
Доброго времени суток.
Можно ли для документов в массиве указывать _id ?

Google

Ruslan
11.02.2018
12:08:14

Dim
11.02.2018
12:09:43

Ruslan
11.02.2018
12:12:25

Dim
11.02.2018
12:12:39

Ruslan
11.02.2018
12:13:32
визуально без разницы, а вот есть ли преимущества у данных типа ObjectId - хз
одно уж точно
ObjectId - не заморачиваешься и он уникален
строковый - а вдруг уже есть такой?

Valeriy
11.02.2018
12:16:01

Dmitriy
11.02.2018
13:37:04
Хотя, может уже доработали уникальность. Не следил внимательно за изменениями

Nick
11.02.2018
13:43:18

Ruslan
11.02.2018
13:56:36

GNU/Docker
11.02.2018
14:05:10
чо
спеку по objectId почитайте плёс

Google

yopp
11.02.2018
20:49:13

AP?
11.02.2018
20:51:01

yopp
11.02.2018
20:51:43

Dmitriy
11.02.2018
20:52:22

yopp
11.02.2018
20:56:48
Я с вами скоро на js писать начну

AP?
11.02.2018
20:57:43
Спасибо, завтра гляну, впервые познакомился сегодня

Artem
12.02.2018
06:04:12

Ruslan
12.02.2018
07:19:12

Mikhail
12.02.2018
07:55:47

Ruslan
12.02.2018
08:01:21

Denis
12.02.2018
08:03:39
Если нужны точные вычисления и очень большие числа, то есть для этого пакет. В типичных задачах которые решает жс точность не нужна вообще же..

Mikhail
12.02.2018
08:05:06

Ruslan
12.02.2018
08:05:21
PS: Не, правда. Это просто раздули именно в JS. Т.е. к нему приковано негативное внимание и из мухи слона делают.
както так исторически

Mikhail
12.02.2018
08:07:41
ежесекундно)
А оставшиеся 99.9% разработчиков на js с этим вообще не сталкиваются

yopp
12.02.2018
08:07:58
Обсуждение языков не в этой группе

ruby
12.02.2018
11:04:43
Привет. Подскажите, пожалуйста: у юзера есть вложенный массив с уведомлениями. Нужно сделать пагинацию по уведомлениям (offset, count). Можно ли как то сделать выборку по вложенным документам или нужно получать сразу все уведомления и отправлять только нужные?

Google

ruby
12.02.2018
11:04:57
И если можно, то будет ли это быстрее?

Artem
12.02.2018
11:12:18
Админ, а выдайте плз амнистию для @Anc1ent)

anatolii
12.02.2018
13:17:38

ruby
12.02.2018
13:39:10
Вынесите их в отдельную коллекцию
Когда тогда использовать вложенные документы? Во всех примерах в них обычно даже комментарии к сущностям хранят, список лайкнувших и прочую инфу, которая, очевидно, не должна подгружаться полностью

anatolii
12.02.2018
13:39:50
Монга не очень любит большие вложенности и большие обьемы данных в одном документе
К примеру есть человек и у него 3 телефона + 2 емейла
Есть фирма и у нее 50 сотрудников
И то и то вложенность, но второе не стоит хранить в одном
Если монга принимает любой формат, это не значит что нужно лепить все в одно, единственное исключение - ты выбираешь всегда это одно сколько бы его ни было и тебе все это нужно, тогда да, можно лепить очень много данных.
В твоем случае нотификация - отдельна ясущность со своим выводом с пагинацией итд
вынеси ее

ruby
12.02.2018
13:42:02
Понял, спасибо

anatolii
12.02.2018
13:42:05
Тебе же будет проще с ней работать, удалять добавлять итд

Dmitry
13.02.2018
07:14:56
Ребят подскажите что за тема $ref
Если я в коллекции делаю ссылку на элемент другой коллекции, то при запросе коллекции, он сам вытащит нужные документы и подставит вместо ссылки?

Daria
13.02.2018
07:19:19
Нет, нужно сделать $lookup (у Mongoose это заключено в функцию populate).

Igor
13.02.2018
07:37:55
Привет
Посоветуйте русскоязычную документацию по администрированию монги

Artem
13.02.2018
08:06:42
русскоязычной документации не так уж и много, я кидал ссыль на "MongoDB в действии" Кайла Бэнкера. Примеры приводятся с версией 2.6, по по сути, книга до сих пор актуальна.

Google

Сергей
13.02.2018
08:14:08
и пытаться читать официальную

User ?
13.02.2018
09:42:50
Нет, нужно сделать $lookup (у Mongoose это заключено в функцию populate).
А можно пример?
Я попытался сделать и у меня не получилось.
Моя схема такая
route
{
POIs [<ObjectID1>,<ObjectID2>],
name: "myRouteName"
}
POIs
{
<ObjectID1>,
"name":"dd",
"description":"desc"
}
Я хочу, чтобы при запросе к route
Выдавался такой документ
{
POIs [
{
"name":"dd",
"description":"desc"}
,
{
"name":"d2",
"description":"desc2"}
],
name: "myRouteName"
}

Nick
13.02.2018
09:47:00
если мы про монгус

User ?
13.02.2018
09:48:08
я про монго-консоль, а потом это на го с использованием mgo напишу

Nick
13.02.2018
09:49:20
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
по драйверу го не подскажу, может там есть вменяемый способ аналогичный populate

User ?
13.02.2018
09:51:13
Все равно не понял, но спасибо.

Nick
13.02.2018
09:51:56
читайте доки, разбирайтесь как работают запросы в монго и как оно реализовано в вашем драйвере, а потом переходите к кодингу

User ?
13.02.2018
09:53:46

Nick
13.02.2018
09:54:33
всегда можно сделать максимально топорным методом, лишь бы работало
но если нужно чтобы работало нормально, то все-таки придется разбиратсья
в данном случае топрный метод - это просто вытащить все доки, и дял каждого POIs у него вытащить доп объект и собрать уже то что требуется. без разбирательств только так

User ?
13.02.2018
09:57:44

yopp
13.02.2018
10:51:55
Ребят подскажите что за тема $ref
Это соглашение о хранении ссылок на документы. Грубо говоря рекомендация, чтоб не делали своих велосипедов. Ничего автоматически происходить не будет, если ваш драйвер не умеет или не настроен этого делать.

Dmitry
13.02.2018
10:53:26
ок спасибо поизучаю
кто-нить может вообще подсказать дельные видосы по изучению монги и вот таких вот lookup итд

Alexander
13.02.2018
10:59:25
парни, чем можно заменить MyModel.update, чтобы новые доки возвращал?
multi: true

Google

Vladislav
13.02.2018
11:04:53
Всем привет. Хотел бы узнать как понять где можно использовать mongodb, а где уже стоит использовать реляционную бд. Дело в том, что в любом мелком проекте есть хотябы одна связи и вот хотел бы узнать как справляется $lookup. Какие есть тонкости. Актуальной информации об опыте использования я не нашел. Спасибо тем, кто отнесется с пониманием к вопросу и ответит.

yopp
13.02.2018
11:10:57
$lookup относится только к агрегациям.
В остальном вопрос не в нормализации/денормализации, а в том, насколько у вас жесткие требования по поддержанию актуальности связанности.
В монге нет транзакций и изоляции
В остальном: реляционные базы для join делают подзапрос. А монге это проблема клиента, будете сами (или ваш драйвер/ode) их делать

Alexander
13.02.2018
11:18:35

anatolii
13.02.2018
11:18:40

yopp
13.02.2018
11:19:12
Дров по незнанию можно где угодно наломать

anatolii
13.02.2018
11:19:30
Это прекрасный совет

Nick
13.02.2018
11:19:33
Зато сразу поймешь где ее можно использовать и как структуру данных подстраивать по монгу
Чисто на своем опыте

anatolii
13.02.2018
11:19:55
Чтоб монгу использовать, можно ее подучить самостоятельно и тогда будешь знать где ее можно а где не стоит использовать
Супер, сразу в бой на продакшен, поламаешь все, зато будешь знать как ее использовать, вот это отличный совет