Andrew
без айдишек вообще, просто хранить в нем сразу всю инфу
Andrew
типа
Andrew
user { username: 'sdfsdf' user: 1234 }
Andrew
сразу полем в Post ?
Nick
если поигратсья, то да
Andrew
или хранить айдишку и подтягивать селектами юзера?
Nick
если не поиграться, то формируйте требования, что с ними будет делаться, сколько их будет, размеры и т.п.
Nick
в монге один док не может быть больше 16Мб
Andrew
https://github.com/OneHedgehog/meanapp/tree/master/models
Andrew
Есть такие модели
Andrew
формирал их через связи
Andrew
теперь думаю, это не тру вей для монги
Andrew
Хотел бы узнать, как правильно делать что=либо подобное
Nick
вы для чего делаете?
Andrew
пока пет проект
Andrew
размер не большой данных
Andrew
Цель просто разобраться в принципах монги
Danil
как получить массив какого либо поля для всех документов?
Danil
ну т.е получить только айдишники всех юзеров
Danil
например
Nick
Цель просто разобраться в принципах монги
ваш вариант так же работоспособен как и остальные, в монге, а точнее для документоориентированных бывает удобно/не удобно, и как правило основная логика лежит всеравн ов области приложухи, а база - просто просто хранилище. Поэтому смотрите удобно ли вам самим работать с такой структурой, выборки там делать, подсчитывать всякое непотребство
Andrew
и привело к мысли, что я как-то не так юзаю инструмент
Danil
projection
я как понял просто юзать .select()?
Nick
я как понял просто юзать .select()?
в монге это называется projection, как это в вашем драйвере/фреймворке поищите
Nick
и привело к мысли, что я как-то не так юзаю инструмент
в одном тоже хранить хорошо, но достаточно быстро становится сложно делать вского рода аналитические запросы. Помимо этого сложно ссылаться на комменты из других сущностей-коллекций. Но и полностью разносить данные по типу "каждой сущности своя коллекция" - это перебор. Имеет смысл посмотреть в сторону денормализации (дублирования) информации в разных сущностях, всякие счетчики с предагрегатами и т.п. чудеса
Nick
тогда можно пересесть на sql и радоваться жизни, пока достаточно производительности одного сервака и нет какихто мегатребований к доступности
Nick
а проблем - везде lookup-ы
Nick
т.е. все на aggregatino framework, либо это будут свои костыли вашего драйвера
Andrew
Ок, спасибо. Пока не понимаю, чем это плохо. Пойду гуглить
Nick
не понимаете, потому что нет требований
Nick
почему нет? полностью денормализованные данные, разбитые по сущносятм и отношениям - идеально для релиционок
Nick
конечно если спрятаться за ОРМ/ОДМ, то вообще не важно что да как хранится и где
yopp
и надо за ODM прятаться, зачем изобретать свой велосипед
yopp
монга тем и хороша что степень денормализации регулируется очень плавно
yopp
и можно совмещать приятное с полезым
yopp
сильная денормализация не значит что надо будет делать лукапы
Max
Расскажите!
переключателя между версиями монги
Max
+ возможность индексировать колекцию
yopp
индексы в плане, ето будет
yopp
версии в голове, надо записать. но я не придумал зачем нужны версии, если в 4.0 вобщем-то почти всё из 3.x работает :)
yopp
но меня скорее интересует что нужно сделать чтоб начали сейчас пользоваться
yopp
количество сниппетов не из дефолтного темплейта == 0 :)
yopp
один раз нажали run и ушли
yopp
эм
yopp
а что, бывали случаи когда нет?
Max
у меня нет
yopp
у меня тоже!
Oleg
Привет. есть репликасет из трёх нод. к примеру нода3 сейчас мастер. потом происходит бадабум. хочется поднять одну ноду из трёх из бекапа (сделанной с помощью снапошота вирт.машины). и запустить её как примари. подняли ноду1, а она становится секондари и не хочет стать примари. с помощью cfg = rs.conf() cfg.members[0].priority = 1.5 cfg.members[1].priority = 1 cfg.members[2].priority = 1 rs.reconfig(cfg,{force: true}) поднял ей приоритет, но выборы почему-то не делают её примари, подскажите куда смотреть?
yopp
но вообще, идея что у вас есть назначенный «праймари» в реплика сете не самая лучшая
madspectator
Подскажите, как $lookup работает? Например. Я делаю $lookup и вытаскиваю поле foreignCol.foo (а там есть индекс на foo) И потом после $lookup стадии, я сделаю $sort стадию и сортирую по foo Затем $limit, мне надо первую сотню. Так вот для этой первой сотни будет перелопачена вся коллекция foreignCol или будут взяты только первые сто документов (в порядке сортировки по foo) ?
yopp
сортироваться будет весь набор документов в пайплайне, а не коллекция из $lookup
yopp
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
madspectator
Спасибо, да я читал, но не вдумчиво )
Sardor
ребят, можно как-нибудь в .updateOne() сделать, чтобы свойство добавлялось, только если его нет? new: false для этого предназначен?
yopp
new это опция findAndModify, которая говорит вернуть версию документа до или после обновления
yopp
$exists
yopp
но это работает только если у вас в запросе это единственное условие
yopp
если не единственное, то ¯\_(ツ)_/¯
yopp
либо в два запроса
yopp
либо https://docs.mongodb.com/manual/reference/operator/update/setOnInsert/#up._S_setOnInsert
yopp
если это ваш случай
Sardor
$exists
его вместо $set, во второй объект, верно?
yopp
его в условие в query
yopp
https://docs.mongodb.com/manual/reference/operator/query/exists/
Sardor
благодарю)
yopp
Плейграунд обновлися и теперь умеет всё самое нужное: Find, FindAndModify, Update и Aggregate Появилась реалтаймовая проверка синтаксиса запросов. Это была очень интересная задача, которая потребовала написания собственного парсера монговского расширенного JS(ON) (https://github.com/db-ai/mongo-ejson) Размер коллекции увеличен до 32кб. Должно теперь всем хватить! Как обычно, ломайте — https://play.db-ai.co/