Ruslan
Точнее не общие просто либо делать клон (избыточность) либо ссылку
Vlad
Проще избыточность. Если ссылки, то лучше смотреть на реляционки уже. Не стоит реляционную модель переносить в монгу.
Ruslan
Но как тогда редактировать?
Ruslan
Поиск всех копий?
Ruslan
Т.е. целесообразно?
Vlad
В монге вполне в одной коллекции может существовать такое: {Ид:, название:, содержимое:[список], ещё какието характеристики: {уже в виде словаря}} И тут же следующий объект: {Ид, название, цвет, вкус, какой-нибудь другой список: [ ], и пару словарей:{в которых к тому же есть, например, списки}}
Ruslan
Это я понимаю
Ruslan
Обычный жысон
Vlad
А редактировать просто - ты находишь объект и меняешь или добавляешь поля )
Ruslan
Нет, мне кажется избыточность отстой
Vlad
Нет, мне кажется избыточность отстой
Тогда велком то постгрес )
Ruslan
Т.к. чтобы синхронизировать все дубликаты - надо у каждого из них хранить id всех дублей
Ruslan
А вот хранить 1 экземпляр отдельно и ссылаться на него - логично
Vlad
Нет, мне кажется избыточность отстой
Если нет задачи шардирования и данные все более менее структурированы, то тогда проще это всё в реляционку складывать
Ruslan
Жисон привычней, и данные могут местами быть бинар
Anonymous
Ruslan
У монги кажется больше возможностей по хранению
Vlad
А вот хранить 1 экземпляр отдельно и ссылаться на него - логично
Тут две стороны одной медали - либо меньше места на хранение и большее время на соединение данных, либо больший объем и отсутствие джоинов
Anonymous
ребята, ставлю монгу в первый раз
Anonymous
подскажите, mkdir -p /data/db это директория для всех баз данных монго?
Anonymous
или ее нужно в каждом проекте создавать отдельно
Ruslan
Для всех которые прибиты к процессу
Anonymous
как можно запустить монго автоматически при каждом запуске компьютера?
Vlad
Короче я понял, ты считаешь ссылки злом ) не смотря на их индексацию
Тут главный вопрос в том, какие запросы будут это всё вытягивать. Только от них надо отталкиваться и под них строить базу. И если вдруг запросы поменяются, то придется все перестраивать ) именно поэтому реляционка по прежнему многими так любима. Там с этим проблем нет.
Ruslan
Редактировать
Anonymous
ОС?
osx high sierra
Vlad
Запросы: Найти поле Найти совпадения в данных поля
Смотри, найти поле в отдельной коллекции это первый запрос. Найти потом по его ид данные во второй коллекции это уже второй запрос. Яблоко -> ид Корзина {яблоки: [ид нужного яблока]} Проще сразу искать во второй коллекции корзину с большим красным яблоком, это будет только одно действие. Считай это в два раза быстрей. Но тогда и места коллекция будет занимать больше.
Anonymous
получается каждый раз перед запуском приложения нужно запускать отдельно монгу на весь компьютер?
Anonymous
и видимо отдельной командой еще запускать mongo shell >mongo --host 127.0.0.1:27017
Anonymous
верно?
Anonymous
на сервере понятное дело будет постоянно работать
Bandikoot
osx high sierra
https://stackoverflow.com/questions/8065288/how-to-remove-autostart-of-apache-on-macosx
Bandikoot
те же яйки, только в другой директории запускаемый бинарь
Anonymous
можно наверное через докер сделать
Anonymous
наверное можно в iterm настроить вкладку с автозапуском монго
Anonymous
2 вкладки будет, одна на запуск, вторая на шел
Bandikoot
можно наверное через докер сделать
ну тогда тебе надо будет докер в автостарт вписывать так же, как сейчас надо вписать сервер монги)
Bandikoot
поставить монгу из homebrew
...и килять её направо-налево ;]
yopp
её можно через brew services stop останавливать на самом деле
yopp
но я где-то это всё сломал!
Ivan
у меня не пашут brew services
yopp
brew doctor
Ты установил монгу и сервис запускается через systemd жи
sudo systemctl enable mongod
Zloy-Dobry
Лол
Zloy-Dobry
Откуда такие кулибины беруться?
Anonymous
есть ли нормальные доки по mongoose на русском?
Ruslan
есть ли нормальные доки по mongoose на русском?
https://metanit.com/web/nodejs/6.6.php достаточно?)
Anonymous
спасибо, как раз читаю этот док
Ruslan
я там в целом по монге много чего вычитал
Anonymous
mongoose.connect("mongodb://localhost:27017/usersdb");базу usersdb нужно перед коннектом создать через mongodb, верно?
Anonymous
в половине доков устаревшие методы в монго
Анатолий
Базу можно не создавать, монга сама создает базу после первой операции
SvPupok
как только ты говоришь use databasename по факту, монга начинает использовать новую бд, даже если ее не было как таковой
Anonymous
Привет. Если использую нативный драйвер, считается ли нормальной практикой открытие соединения к БД перед запросом и закрытие после? Или же лучше при инициализации приложения один раз подключиться и далее прокинуть глобальный объект БД в нужные места? Читал, что монга может периодически отваливаться, ну и опять же - не те объёмы данных, чтобы стараться сильно экономить время на процедуре открытия/закрытия соединения с БД.
Dmitry
Доброго времени суток.
Dmitry
Можно ли для документов в массиве указывать _id ?
Ruslan
Можно ли для документов в массиве указывать _id ?
можно есть даже функция для его генерации (как это делается автоматом для елемента коллекции)
Dmitry
можно есть даже функция для его генерации (как это делается автоматом для елемента коллекции)
Благодарю. А что лучше использовать, ObjectId или например строковый уникальный идентификатор для элемента массива?
Ruslan
визуально без разницы, а вот есть ли преимущества у данных типа ObjectId - хз
Ruslan
одно уж точно ObjectId - не заморачиваешься и он уникален строковый - а вдруг уже есть такой?
Мечтатель
одно уж точно ObjectId - не заморачиваешься и он уникален строковый - а вдруг уже есть такой?
ObjectId уникален в пределах коллекции только. Гарантии нет, если мы говорим о базе в целом
Мечтатель
Хотя, может уже доработали уникальность. Не следил внимательно за изменениями
Nick
Благодарю. А что лучше использовать, ObjectId или например строковый уникальный идентификатор для элемента массива?
Используйте то, что соотвествует вашим данным. Если у вас нет выраженных уникальных ключей, то оставляете стандартный objectid. Иначе храните свой ключ в удобном виде, например, можно храть объект с несколькими полями, а не просто строковое значение.
CC-BY-SA-4.0/Docker-ce30.0
чо
CC-BY-SA-4.0/Docker-ce30.0
спеку по objectId почитайте плёс