SvPupok
если мне не изменяет память, у монги требования к reduce по размеру входных данных
Sunlive
как в монге сортируются по дефолту записи в коллекции, по _айди?
SvPupok
если я не ошибаюсь, по _id создается индекс по умолчанию.
SvPupok
если сделать запрос типа db.collection.find({}).sort({}) то сортировка произойдет по _id
Nick
как в монге сортируются по дефолту записи в коллекции, по _айди?
не сортируются, пока не укажите в явном виде. в общем случае все зависит от порядка документов в самом хранилище монги
Sunlive
просто я не могу понять, я добавляю 4 записи 1 и 2 на 1 и 4 поз соотв получаются
Sunlive
например
Sunlive
в хаотическом порядке как то
Nick
если нужен порядок - указывайте ключи сортирвоки по кторым нужен порядок
Nick
хотя сдается мне вы гвоорите про массив внутри документа
Nick
а не про вообще работу с монгой
SvPupok
не сортируются, пока не укажите в явном виде. в общем случае все зависит от порядка документов в самом хранилище монги
упс, да, ошибался, согласен, произвольный вывод происходит в порядке записи, сортировки по умолчанию нет
Nick
даже не в порядке записи, а в порядке хранения, как внутри менеджерится расположение доков одному WT известно
SvPupok
надо попробовать на практике поэкспериментировать
Sunlive
4 подряд записи 1 3 4 2
Nick
4 подряд записи 1 3 4 2
зачем вам это нужно?
Nick
какую задачу хотите решить
Sunlive
возвращать самое новое сообщение
Sunlive
по дате, такое, не очень варик вроде
Nick
добавляйте поле со временем и берите максимальное
Sunlive
оно есть)
Sunlive
хотя
Sunlive
просто таймстемп в секундах юниксовый
Sunlive
спасибо
Nick
это критичная часть чтобы получать реально самое новое? т.е. допустимо ли просто взять предыдущее или там перепутать изза коллизии во времени?
Sunlive
ну хотят что бы самое новое было в самом верху
Sunlive
на странице
Nick
опредлитесь с критерием "самое новое", добавьте необходимую информацию в виде поля в документ и сортируйте по нему. Если данных много, то добавьте индекс
SvPupok
а зачем добавлять поле со временем? просто последовательно возрастающий, с каждым новым документом, сиквенс, и отображать документ с максимальным его значением?
Bandikoot
товарищи, а обратный индекс по _id не проще?
Bandikoot
если таймстэмпы не нужны отдельно
Bandikoot
ObjectId же и так содержит дату
Nick
использовать _id для этого - костыль, который аукнется рано или поздно если проект будет хоть както развиваться. в общем случае почти всегда при необходимость показывать самый новый возникнет необходимость показать с по, а это уже на _id делается через еще большие костыли
Nick
а потом просто говорят что нужно показывать время и вот еще костыль для вытаскивания времени из _id
Nick
вроде работает, сделал юниксовый таймстепм, при отправки с сервера сортирую .sort()
только учтите что при использовании юникстайма, если два дока будут в пределах секунды, то очередность вывода будет зависеть от случая
Sunlive
ну на это я могу пойти, шанс на такое в текущем проекте равен 0.001%
Sunlive
мб и не самый изящный способ, но главное тчо бы работало
Vasiliy
Здаров всем! Кто знает как сменить порядок элементов в коллекции? Хочу внутри коллекции поменять два элементами местами друг с другом
SvPupok
простите, а зачем это надо? вы же можете сами определять выводимые запросом ключи документов и их порядок
Shade
Всем привет, подскажите пожалуйста как организовать схему личных сообщений.
Anonymous
ну как и в других базах добавляем поле sort_id и сортируем по нему
Vasiliy
Да, так и сделал с сортировкой в итоге
D
Как установить mongodb на винду?
D
на офиц сайте способ есть ток что=то не работает
D
в инструкции надо припосать msiexec.exe /q /i mongodb-win32-x86_64-2008plus-ssl-3.6.5-signed.msi ^ INSTALLLOCATION="C:\Program Files\MongoDB\Server\3.6\" ^ ADDLOCAL="all"
D
в консоли
D
А перед этим скачать msi установщик,. Я его скачал, прописал из папки с мси файлом - nbibyf
D
тишина
D
Устанавливал вот по \этой схеме
D
https://docs.mongodb.com/v3.4/tutorial/install-mongodb-on-windows/
Oleg
а кликнуть два раза
Oleg
по установщику?
Oleg
нельзя?
SvPupok
эм. а в чем вообще профит монги на винде?
Oleg
если у тебя енвароймент на форточках
Oleg
то почему нет
Oleg
но имхо лучше докер
Oleg
или накрайняк вм поднять
SvPupok
я с докерами не игрался, всегда есть возможность развернуть пачку виртуалок. а в докере можно вынести датафайлы базы за пределы докера?
Oleg
конечно через вольюмы
Oleg
можно тупо директорию замаунтить
Oleg
а можно постоянный вольюм сделать
Oleg
и его переиспользовать, бекапить, и таскать с собой
Oleg
он уже не привязан к ОС, это удобнее
SvPupok
о как) надо будет попробовать. у меня просто доманшний десктоп обычно для тестирования используется, все равно работаю только на ноуте.
Oleg
крайне рекомендую освоить. очень полезно не надо париться, чтоб завелось все и везде работающий докер и 1 компоуз гарантирует, что будет работать везде можно не засорять ОС всяким мусором и быстро тестировать одной командой поднять монгу, сразу с нужными схемами, потестить и грохнуть автоматически
Oleg
линукс софт вообще отлично контейнизируется
Oleg
имейджы маленькие
Oleg
но у нас есть и одно приложение под винду и там тоже ок
Oleg
очень удобно арендовать свежую машину, поставить докер, выкачать образ и запустить
Oleg
без лишней настройки
Oleg
вкупе с ансиблом и ранчером/кибернетс, можно просто разливать образы на тысячи хостов в автоматическом режиме только ссшники вбить
Oleg
но нам такое особо не надо :)
SvPupok
в общем надо почитать
Константин
о как) надо будет попробовать. у меня просто доманшний десктоп обычно для тестирования используется, все равно работаю только на ноуте.
Я ж тебе расказывал что разворачиват в докере) Гдето даже валяется yml под это дело. Найду скину)
Andru
Приветы. Использую mongoose, есть модель game, которая включает в себя items: [{ type: Schema.Types.ObjectId, ref: 'item' }] Как правильно из items удалять в модели game?
Stepan
$pull
Stepan
при апдейте