@MongoDBRussian

Страница 325 из 342
никогда не слушайте
07.10.2018
19:40:52
Всем спасибо)

Получилось)

Завтра попробую эту балалайку со своим фронтом связать

AstraSerg
07.10.2018
19:41:38
Ваших извенений хватит на пятерых :)

Google
никогда не слушайте
07.10.2018
19:44:00
Просто фронтенд сообщество куда более токсичное, от туда и привычка видимо)

AstraSerg
07.10.2018
19:44:43
У нас с этим попроще, так что не стесняйтесь :)

m
08.10.2018
01:38:13
Привет всем, подскажите способ как-то проитерироваться по коллекции и выполнить модификации с каждым документом на основании его данных. Функция updateMany как мне показалось, не даёт доступа к данным модифицированного объекта. Вообще ищу что-то типа map

никогда не слушайте
08.10.2018
08:21:52
Всем хай, я проснулся и день тупых вопросов начинается снова. Правильно ли я понимаю, что удалять базу данных "admin" нельзя?

никогда не слушайте
08.10.2018
08:27:03
Нельзя
Вопрос номер два... Сейчас, когда я переключаюсь на базу данных admin, пользователей у меня там нет, а значит кто хочет, тот туда и пишет и мне нужно добавить нового пользователя в эту бд с правами "readWriteAnyDatabase"?



У меня просто хуйня в конце какая-то вышла, по этому я сейчас нуля пытаюсь показать весь свой порядок действий, чтобы разобраться, где я накосячил...

Nick
08.10.2018
08:31:16
Привет всем, подскажите способ как-то проитерироваться по коллекции и выполнить модификации с каждым документом на основании его данных. Функция updateMany как мне показалось, не даёт доступа к данным модифицированного объекта. Вообще ищу что-то типа map
если вы хотите чтото сделать на основе значений в текущем документе и это не инкремент/декремент счетчика, то только полная итерация по find и последующим изменением дока и его апдейтом по ключу. если есть возможность простоя, то можно использовать aggregations чтобы сгенерить новую коллекцию, и потом переименовать в старую. аналогично можно использовать mapreduce однако если это не разовая операция и вы завязываете на этом логику, то сразу забудьте и переделывайте, т.к. итерирвоание по всей коллекции и изменение элементов не атомарно и приведет к неконсистентности БД

никогда не слушайте
08.10.2018
08:36:02
use admin, потом createUser, всё правильно
Так, теперь мне надо перезапустить mongod и mongo и законектиться уже с аунтефикацией?

Google
AstraSerg
08.10.2018
08:45:33
Так, теперь мне надо перезапустить mongod и mongo и законектиться уже с аунтефикацией?
Перед перезапуском mongod, проверьте включена ли аутунтификация в конфиге. mongo перезапускать не нужно, это просто клиент. Он отключится при перезапуске демона (mongod) ПС. мат у нас не приветствуется. Воздержитесь по возможности :)

никогда не слушайте
08.10.2018
08:45:57
[/] mongod --port 27017 --dbpath /data/db --auth запускаю вот так

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



Который может только записывать/читать бд

Ну в смысле, как создать бд, я знаю. Как добавить в неё фикстуру для теста, тоже. А вот чет с логином к этой базе данных без "админа", у меня какая-то беда. Может я права какие-то не те ей выдаю.

Nick
08.10.2018
09:20:41
update $unset:{ "fieldName":"" }

KhuzhA.GQ
08.10.2018
09:21:01
update $unset:{ "fieldName":"" }
спасибо большое!

Undefined
08.10.2018
09:21:13
Доброго времени суток :) Подскажите, пожалуйста Поле showFor - имеет тип в mongoose схемах - mixed Я там храню email'ы (string) и Id групп (objectId) делаю find по полю showFor, туда передаю email пользователя (всё работает) и пытаюсь сделать поиск по массиву userGroups (что собственно и не работает)



Может, есть у кого догадки?

Получается, он не делает поиск по переданному массиву, даже хз почему

Nick
08.10.2018
09:24:02
а что вы хотетеиспользуя $all?

Undefined
08.10.2018
09:24:35
а что вы хотетеиспользуя $all?
Нашёл статью на хабре, пробовал так же, вот я и решил спросить здесь, что не так

Nick
08.10.2018
09:25:21
нет. напишите логически что вы пытаетесь сделать, само услвоие словами напишите

скорее всег овы неправильно all используете

никогда не слушайте
08.10.2018
09:28:40
Насколько я правильно понимаю, использовать главную учетную запись с привилегией userAdminAnyDatabase, очень не правильно и вообще не безопасно. По этому, для своей новой коллекции, мне нужно создать еще одну учетную запись. Собственно вопрос, какие права ей выдать, readWrite?

Google
Undefined
08.10.2018
09:29:35
нет. напишите логически что вы пытаетесь сделать, само услвоие словами напишите
Иначего говоря у меня есть следующий массив в БД, у которого тип mixed Там хранятся как email'ы, так и Id груп, для которых я должен отображать значения Мне с клиента приходит массив групп -> req.query.userGroups Как мне выполнить поиск и выдать только те объекты, где значения userGroups есть в поле showFor

Nick
08.10.2018
09:32:06
$all - нужно использовать когда нужно чтобы в вашем массиве встретились все указанные в фильтре группы

никогда не слушайте
08.10.2018
09:33:59
Насколько я правильно понимаю, использовать главную учетную запись с привилегией userAdminAnyDatabase, очень не правильно и вообще не безопасно. По этому, для своей новой коллекции, мне нужно создать еще одну учетную запись. Собственно вопрос, какие права ей выдать, readWrite?
Я прошу прощения, за свои глупые вопросы, просто можете посмотреть на мою аватарку) У меня не аутизм конечно, но все равно, галоперидол мне нормально работать пока не дает, а очень хочется :|

Nick
08.10.2018
09:44:41
давайте еще раз формализуем запрос: выбрать записи у которых showFor равно емейлу либо совпадает с одной из переданных userGroups?

Nick
08.10.2018
09:45:06
вот это другой разговор

Да
https://docs.mongodb.com/manual/reference/operator/query/in/

вместо $all ставите $in

Undefined
08.10.2018
09:47:55
вот это другой разговор
Да, я и с $in пробовал, как-то тоже не работает

Nick
08.10.2018
09:48:18
по запросу, который я выше обговорил - нужен in

Undefined
08.10.2018
09:48:32
Nick
08.10.2018
09:48:34
да все верно

сделайте тестовый набор данных и на нем првоерьте

может у вас там даныне по другому введены

AstraSerg
08.10.2018
09:50:28
Насколько я правильно понимаю, использовать главную учетную запись с привилегией userAdminAnyDatabase, очень не правильно и вообще не безопасно. По этому, для своей новой коллекции, мне нужно создать еще одну учетную запись. Собственно вопрос, какие права ей выдать, readWrite?
Да, под полным админом лучше не работать с точки зрения безопасности. Сделайте отдел.ную учетку. Есть встроенные роли https://docs.mongodb.com/manual/reference/built-in-roles/ можете сделать свои. Базу можно не делать. Просто делаете инсерты. При необходимости она создастся

Undefined
08.10.2018
09:54:57
да все верно
Нашёл проблему в том, что если id хранится в string, то он ищет, а если в objectID (разговор про типы данных), то он не находит

Nick
08.10.2018
09:55:11
само собой

Google
Undefined
08.10.2018
09:55:42
само собой
а как сделать так, что бы он и типы для objectId искал?

Nick
08.10.2018
09:55:43
монга в автопреобразования не умеет

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

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

Undefined
08.10.2018
09:56:48
Nick
08.10.2018
09:57:36
это прогерская задача и зависит от вашего языка либ и т.п.

если js, будет чтото вроде (я хз за синтаксис) newGroups=[] oldgroups.foreach(group->{ newGroups.add(new ObjectID(group)) })

никогда не слушайте
08.10.2018
10:07:24
Пожалуй, задам еще один базовый вопрос. Вот например, у меня есть коллекция, в которой я храню связку "логин/пароль". Теперь же мне нужно к этим юзерам, хранить какие-то данные, к примеру их личные записи и никто, кроме этих юзеров, не должен получать доступ к этим записям. Буду рад даже просто словесному описанию алгоритма, дальше думаю разберусь.



Я не совсем понимаю просто, одного момента, на каком уровне происходит "авторизация", мне при регистрации нового пользователя создавать отдельную коллекцию и пихать уже туда все его данные, или же, все же пользователи и записи хранить отдельно друг от друга?

Олег
08.10.2018
10:19:14
господи

никогда не слушайте
08.10.2018
10:20:01
господи
как легко заставить поверить человека в бога)

Я второй день с БД вообще работаю) Понятное дело что мало что в этом понимаю.

Олег
08.10.2018
10:20:56
как легко заставить поверить человека в бога)
на самом деле я уверую, когда ты скажешь как ты с таким ключом будешь искать юзера по имейлу

никогда не слушайте
08.10.2018
10:22:25
а, окей :)
Я так понимаю, поле _id генерируется автоматически? В каком формате мне правильно добавлять юзера?

никогда не слушайте
08.10.2018
10:23:48
А... окс, ща поправлю) Я просто временно на больничном, сам я из фронтонтенда, решил хоть немного с бекендом разобраться, по этому простите за глупые вопросы)

Google
AstraSerg
08.10.2018
10:25:58
Я не совсем понимаю просто, одного момента, на каком уровне происходит "авторизация", мне при регистрации нового пользователя создавать отдельную коллекцию и пихать уже туда все его данные, или же, все же пользователи и записи хранить отдельно друг от друга?
Просто добавьте в ту же коллекцию всю информацию, которую хотите хранить для пользователя. Правда тут есть одно « Но». Иногда имеет смысл сделать отдельную коллекцию с этими дополнительными данными по пользователю. Один их таких случаев — это когда объем данных превашает 16 мегабайт (максимальный размер документа в монге)

никогда не слушайте
08.10.2018
10:28:45
А если кто-то другой возьмет и подставить чужой ID он же сможет получить доступ к любой записи

никогда не слушайте
08.10.2018
10:29:40
Так, ладно. Может мне кто подсказать туториал для самых "маленьких"?

А то я своими тупыми вопросами вас тут достану скоро) Да и не хочется идиотом полным выглядеть c:

AstraSerg
08.10.2018
10:30:49
Ну, 16мб я вряд ли перевалю... А вот... на счет первого. Получается, когда я хочу зарегистрировать нового пользователя, мне нужно для него создавать новую коллекцию?
Нет, в коллекцию пишите все записи про пользователей. Один пользователь — один документ в коллекции. По по воду архитектуры здесь почитайте https://docs.mongodb.com/ecosystem/use-cases/storing-comments/

никогда не слушайте
08.10.2018
10:31:33
Node

Олег
08.10.2018
10:31:42
Node
express?

никогда не слушайте
08.10.2018
10:31:46
+

AstraSerg
08.10.2018
10:31:56
А то я своими тупыми вопросами вас тут достану скоро) Да и не хочется идиотом полным выглядеть c:
Да перестеньте вы уже извинятся. :) Все мы проходили через эту стадию и только рады помочь.

никогда не слушайте
08.10.2018
10:32:08
Ну я так и так умею. Хоть с экспрессом, хоть без него

Олег
08.10.2018
10:32:16
+
https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/

jwt — стильно, модно!

никогда не слушайте
08.10.2018
10:33:09
JWT чет санными тряпками били, типа дырявый он

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