
Nick
13.06.2018
10:25:05

Sunlive
13.06.2018
10:25:32
ну на это я могу пойти, шанс на такое в текущем проекте равен 0.001%
мб и не самый изящный способ, но главное тчо бы работало

Vasiliy
13.06.2018
13:29:37
Здаров всем! Кто знает как сменить порядок элементов в коллекции? Хочу внутри коллекции поменять два элементами местами друг с другом

Google

Artem
13.06.2018
13:58:50
простите, а зачем это надо? вы же можете сами определять выводимые запросом ключи документов и их порядок

Shade
13.06.2018
14:06:33
Всем привет, подскажите пожалуйста как организовать схему личных сообщений.

Sergey
13.06.2018
14:14:23
ну как и в других базах добавляем поле sort_id и сортируем по нему

Vasiliy
13.06.2018
14:41:33
Да, так и сделал с сортировкой в итоге

?
13.06.2018
19:28:07
Как установить mongodb на винду?
на офиц сайте способ есть ток что=то не работает
в инструкции надо припосать 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"
в консоли
А перед этим скачать msi установщик,. Я его скачал, прописал из папки с мси файлом - nbibyf
тишина
Устанавливал вот по \этой схеме
https://docs.mongodb.com/v3.4/tutorial/install-mongodb-on-windows/

Oleg
13.06.2018
19:33:00
а кликнуть два раза

Google

Oleg
13.06.2018
19:33:05
по установщику?
нельзя?

Artem
13.06.2018
19:34:25
эм. а в чем вообще профит монги на винде?

Oleg
13.06.2018
19:35:56
если у тебя енвароймент на форточках
то почему нет
но имхо лучше докер
или накрайняк вм поднять

Artem
13.06.2018
19:37:29
я с докерами не игрался, всегда есть возможность развернуть пачку виртуалок. а в докере можно вынести датафайлы базы за пределы докера?

Oleg
13.06.2018
19:37:47
конечно через вольюмы
можно тупо директорию замаунтить
а можно постоянный вольюм сделать
и его переиспользовать, бекапить, и таскать с собой
он уже не привязан к ОС, это удобнее

Artem
13.06.2018
19:39:27
о как) надо будет попробовать. у меня просто доманшний десктоп обычно для тестирования используется, все равно работаю только на ноуте.

Oleg
13.06.2018
19:45:18
крайне рекомендую освоить.
очень полезно
не надо париться, чтоб завелось все и везде
работающий докер и 1 компоуз гарантирует, что будет работать везде
можно не засорять ОС всяким мусором и быстро тестировать
одной командой поднять монгу, сразу с нужными схемами, потестить и грохнуть автоматически
линукс софт вообще отлично контейнизируется
имейджы маленькие
но у нас есть и одно приложение под винду и там тоже ок
очень удобно арендовать свежую машину, поставить докер, выкачать образ и запустить
без лишней настройки

Google

Oleg
13.06.2018
19:49:24
вкупе с ансиблом и ранчером/кибернетс, можно просто разливать образы на тысячи хостов в автоматическом режиме
только ссшники вбить
но нам такое особо не надо :)

Artem
13.06.2018
19:49:51
в общем надо почитать

Константин
14.06.2018
10:32:48

Andruha
14.06.2018
13:45:00
Приветы. Использую mongoose, есть модель game, которая включает в себя
items: [{
type: Schema.Types.ObjectId,
ref: 'item'
}]
Как правильно из items удалять в модели game?

Stepan
14.06.2018
13:54:07
$pull
при апдейте

Andruha
14.06.2018
13:57:08
вот так сделал пока
const posToDelete = game.items.findIndex(e => e.id === model.id);
game.items.splice(posToDelete, 1);
await game.save();
но почему-то понадобилось несколько раз это пройти, удаляло по половине айтемов за проход. Типа изначально было 16 элементов на удаление, после первого прохода осталось 8, после еще прохода осталось 4 и тд )

Nick
14.06.2018
14:03:09
а вам очистить?

Andruha
14.06.2018
14:17:34
да, вот так делаю - не пашет
const asd = await game.update({ id: id }, { $pull: { items: { apply: null } } });
ошибок никаких

Nick
14.06.2018
14:20:51
а просто $set:{items:[]} не пробовали?

Andruha
14.06.2018
14:22:10
а мне не все надо удалять, а только где в items apply=null

Nick
14.06.2018
14:23:30
db.survey.update(
{ },
{ $pull: { results: { $elemMatch: { score: 8 , item: "B" } } } },
{ multi: true }
)
из примера к пулу
https://docs.mongodb.com/manual/reference/operator/update/pull/

Andruha
14.06.2018
14:24:31
спс
без multi: true ошибок нет, но и ничего не удаляет, с multi ошибка callback.apply is not a function

Google

Andruha
14.06.2018
14:32:23
попробую еще в нодежс чате спросить, спасибо вам
Продолжается все-таки моя эпопея)) использую mongoose хочу сделать удаление определенных элементов в документе $pull: { items: { apply: null } } - не канает
пробовал удалять по одному $pull: { items: { _id: id } } - так ок
то есть какая-то проблема в условии apply: null, но как сделать правильно я не могу найти

Nick
14.06.2018
19:38:38
указывайте elemMatch
а не фильтр

Andruha
14.06.2018
20:01:19
В доке написано, что одно и тоже

Nick
14.06.2018
20:14:07
а пробовали?

Andruha
14.06.2018
21:21:41
Да

Nick
14.06.2018
23:21:36
Да
дико извиняюсь за отсылку к elemMatch, поспешил и не вчитался в доку
In fact, the following operation will not pull any element from the original collection.
кто ж доудмался не выделить большими красными жирными буквами will not pull

Andruha
15.06.2018
06:24:59

Nick
15.06.2018
07:10:08
я вчера протестировал в монгошеле и никаких доп действий при работе с нулом не требовалось

Andruha
15.06.2018
07:18:47

Nick
15.06.2018
07:32:59
пример теста можно?
добавил в коллекцию несколько объектов вида
{
"items" : [
{
"id" : 1,
"apply" : null
},
{
"id" : 2,
"apply" : true
},
{
"id" : 3,
"apply" : null
}
]
}
потом выполнил ваш запрос на апдейт
db.getCollection('tst2').update(
{ },
{ $pull:{items:{apply:null}}},
{ multi: true }
)
и вставленные доки првратились в
{
"_id" : ObjectId("5b236b2d0c3f7c79b6fdea75"),
"items" : [
{
"id" : 2,
"apply" : true
}
]
}

Andruha
15.06.2018
07:39:18
А может быть связано с тем, что items я заполняю через populate?

Nick
15.06.2018
07:39:54
так гляньте как выглядят доки в базе

Andruha
15.06.2018
07:43:43

Nick
15.06.2018
08:01:49
Покажите значение с нулом, которое пытаетесь удалить а не левые доки

Andruha
15.06.2018
08:02:53
а я не знаю, как в studio 3t сделать populate, это же по-моему чисто монгусовская фишка?

Nick
15.06.2018
08:03:35
Вот все проблемы орм налицо - люди не умеют работать с бд

Google

Nick
15.06.2018
08:04:28
Возьмите кусок кода на монгусе и выполните на тестовой коллекции на тестовых данных

Andruha
15.06.2018
08:05:13

Nick
15.06.2018
08:05:16
Тот этап, после которого в доках должны моявиться нулы

Andruha
15.06.2018
08:05:55
Так я и смотрю. В монго еще не все освоил)

Павел
15.06.2018
08:49:27
Добрый день, подскажите пожалуйста почему может не проходить аутентификация при коннекте по uri:
mongodb://user:pass@host:port/schema
но при этом по uri
mongodb://user:pass@host:port/?authSource=schema
коннектится успешно
пользователь user создан именно в схеме schema (не в admin)

Nikita
15.06.2018
08:50:01
Вы разве не ответили сами на свой вопрос?

Павел
15.06.2018
09:10:33
есть еще одна БД (в настройке которой я не участвовал), с первого взгляда настройки идентичны, во второй БД успешно проходит коннект в обоих случаях
вопрос снимается, была ошибка/опечатка в строке коннекта

Andruha
15.06.2018
09:58:12
Тот этап, после которого в доках должны моявиться нулы
Вощем оказалось вот что, это работает const asd = await Game.update({ _id: id }, { $pull: { items: { apply: null } } });
Но только если в коллекии items есть хоть один элемент, где apply is not null, если все null, то ничего не удаляет, если есть что-то not null, то удаляет все, кроме элемента с not null


yopp
15.06.2018
11:39:04
https://www.mongodb.com/blog/post/secondary-reads-mongodb-40?jmp=twt&utm_source=4244&utm_medium=TWITTER&utm_term=4&linkId=53032474
Stable: 3.6.5 (May 25, 2018), Bugfix: 3.4.15 (May 16, 2018), Upcoming: 4.0.0-rc3 (Jun 6, 2018)
MongoDB quick overview/production notes: https://www.percona.com/live/e17/sites/default/files/slides/Running%20MongoDB%20in%20Production%20-%20FileId%20-%20115299.pdf
4.0.0-rc3: https://groups.google.com/forum/m/#!topic/mongodb-user/M6KivWS6Ky4
3.6.5: https://docs.mongodb.com/manual/release-notes/3.6/#may-29-2018
3.4.15: https://docs.mongodb.com/manual/release-notes/3.4/#may-16-2018
3.2.20: https://docs.mongodb.com/manual/release-notes/3.2/#may-10-2018 (End of life: September 2018)
3.0.x: Support ended February 2018