@MongoDBRussian

Страница 186 из 342
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
Можно ли для документов в массиве указывать _id ?
можно есть даже функция для его генерации (как это делается автоматом для елемента коллекции)

Dim
11.02.2018
12:09:43
можно есть даже функция для его генерации (как это делается автоматом для елемента коллекции)
Благодарю. А что лучше использовать, ObjectId или например строковый уникальный идентификатор для элемента массива?

Dim
11.02.2018
12:12:39
Ruslan
11.02.2018
12:13:32
визуально без разницы, а вот есть ли преимущества у данных типа ObjectId - хз

одно уж точно ObjectId - не заморачиваешься и он уникален строковый - а вдруг уже есть такой?

Dmitriy
11.02.2018
13:37:04
одно уж точно ObjectId - не заморачиваешься и он уникален строковый - а вдруг уже есть такой?
ObjectId уникален в пределах коллекции только. Гарантии нет, если мы говорим о базе в целом

Хотя, может уже доработали уникальность. Не следил внимательно за изменениями

Nick
11.02.2018
13:43:18
Благодарю. А что лучше использовать, ObjectId или например строковый уникальный идентификатор для элемента массива?
Используйте то, что соотвествует вашим данным. Если у вас нет выраженных уникальных ключей, то оставляете стандартный objectid. Иначе храните свой ключ в удобном виде, например, можно храть объект с несколькими полями, а не просто строковое значение.

Ruslan
11.02.2018
13:56:36
GNU/Docker
11.02.2018
14:05:10
чо

спеку по objectId почитайте плёс

Google
yopp
11.02.2018
20:51:43
ObjectId уникален в пределах коллекции только. Гарантии нет, если мы говорим о базе в целом
ObjectId — псевдослучайное значение. Никто не гарантирует его уникальности. Гарантия уникальности есть только у поля _id в корне документа. Все остальное не гарантируется. На практике получить коллизию ObjectId будет близко к невозможному.

yopp
11.02.2018
20:56:48
Нода. Решил проблему одним подключением, дальше просто его инстанс в апп прокидываю и работаю.
http://mongodb.github.io/node-mongodb-native/3.0/reference/connecting/connection-settings/ Если вы используете современную версию, то судя по poolSize драйвер уже разруливает эту проблему за вас. Главное используйте ссылку на инстанс MongoClient

Я с вами скоро на js писать начну

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

Artem
12.02.2018
06:04:12
Я с вами скоро на js писать начну
)))))) давай уж на Питоне лучше

Ruslan
12.02.2018
07:19:12
)))))) давай уж на Питоне лучше
питон на фонтенде не пашет)) а так, да, в нем хотябы приколов с точностю вычисления нету)))

Ruslan
12.02.2018
08:01:21
Ну хватит уже. 0.1 + 0.2 != 0.3 не только в js
неее, в js 9999999999999999 != 9999999999999999

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

Mikhail
12.02.2018
08:05:06
неее, в js 9999999999999999 != 9999999999999999
И часто вы такие сравнения выполняете?

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)

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

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
читайте доки, разбирайтесь как работают запросы в монго и как оно реализовано в вашем драйвере, а потом переходите к кодингу

Nick
13.02.2018
09:54:33
всегда можно сделать максимально топорным методом, лишь бы работало

но если нужно чтобы работало нормально, то все-таки придется разбиратсья

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

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:19:30
Это прекрасный совет

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

Чисто на своем опыте

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

Супер, сразу в бой на продакшен, поламаешь все, зато будешь знать как ее использовать, вот это отличный совет

Страница 186 из 342