dnacd 🦜
Спасибо за наводку
можно из без этого реализовать, поиск по паттерну с регулярками. + если тебе нужны только имя фамилия, то ищи просто по двум полям и не морочь голову, там ещё case insensitive можно навесить, и тогда поиск будет более гибкий по типу ПирОжков АрТур
Vladimir
Хммм Я просто не пойму Если человек вобьёт в поиск Артур Пирожков, то ни имени, ни фамилии такой нет Как в этом случае быть ?
Nick
Добрый день! Хочу сделать поиск в бд подписчиков У каждого подписчика есть поле firstName и lastName Вбивается query параметр find_el = "Пирожков" (допустим, фамилия) Как сделать нечёткий поиск сразу по двум параметрам firstName и lastName и выдать пользователей, у которых есть и имя и фамилия с таким названием ?
$text и текстовый индекс по нескольким полям частично покрывает ваше потребности, но только если не будет ошибок. Если хочется еще допускать ошибки в полях ввода, то это задача для полнотекстового поиска и стоит поискать нормальные инструменты для этого, а в монге эта тема так себе. (но есть в облаке atlas search который поинтереснее, но думаю до того же эластика не дотянет)
dnacd 🦜
Хммм Я просто не пойму Если человек вобьёт в поиск Артур Пирожков, то ни имени, ни фамилии такой нет Как в этом случае быть ?
ничего не возвращать в таком случае юзеру, либо применять еще транслит с кирилицы на латиницу
dnacd 🦜
либо делать второй доп запрос в бд, по фамилии, без имени, сто бы отдать всех пирожковых и показать., что артуров нет)
Vladimir
ничего не возвращать в таком случае юзеру, либо применять еще транслит с кирилицы на латиницу
Погодите, смотрите Есть юзер имя: Артур фамилия: Пирожков Но в поиск он вобьёт Артур Пирожков
Vladimir
То есть брать сплит
Vladimir
И значения туда <=> сюда выдавать из поиска?
Vladimir
но я бы для фуллтекст юзал бы эластик
Эластик у нас* недоступен *в РФ
dnacd 🦜
Погодите, смотрите Есть юзер имя: Артур фамилия: Пирожков Но в поиск он вобьёт Артур Пирожков
хуйню написал сорри find or name, surname in [Artur, Pirozkov] https://www.mongodb.com/docs/manual/reference/operator/query/in/
Nick
Эластик ушёл с РФ Он отпадает , т.к. по юр.причинам не доступен
Не вижу связи, качаешь, ставишь, запускаешь, пользуешься
Nick
Погодите, смотрите Есть юзер имя: Артур фамилия: Пирожков Но в поиск он вобьёт Артур Пирожков
Вам надо точное совпадение регистронезависимо или надо больше возможностей?
Vladimir
По одному полю есть, а вот по двум и более скорее всего нет
Nick
И по одному нет нечеткого
Nick
Или вы чтото другое имеете в виду под нечеткий
dnacd 🦜
это наверное и имеет ввиду
Vladimir
И по одному нет нечеткого
Игнорирует регистры и ищет по буквам
dnacd 🦜
когда ввел Витек а тебе выдало Витя
Nick
Игнорирует регистры и ищет по буквам
Это не нечетко, это всеголишь регистронезависимо
dnacd 🦜
Игнорирует регистры и ищет по буквам
о буквам это матч, который найдет записи в который есть В, Ви, Витё, Витёк
Vladimir
когда ввел Витек а тебе выдало Витя
Разное как по мне В Вк если вписать Влад , где имя у него Владислав , то не выдаст
dnacd 🦜
Разное как по мне В Вк если вписать Влад , где имя у него Владислав , то не выдаст
потому что у них другая поисковая логика, каждый строит поиск на проекте как хочет, к примеру эластик очень гибкий в плане настройки
dnacd 🦜
поэтому да, если хочешь монгу юзать, то юзай or username, surname in [username, surname] + case insensitive
Nick
Разное как по мне В Вк если вписать Влад , где имя у него Владислав , то не выдаст
Соберите требования в одном месте, чтобы на ходу не придумывать то как это должно быть. После этого можно будет чтото посоветовать
dnacd 🦜
+- будет гибко)))
Vladimir
Есть форма Человек может вписать Имя Фамилия Может вписать Имя Может вписать Фамилия *данные, которые вбиваются в поиск могут быть разного регистра Нужно сделать поиск по бд
dnacd 🦜
Vladimir
Понял, попробую Спасибо всем большое за выделенное время ))
Xlebp
У меня есть одна бд. Я пытаюсь подключиться к ней из 2 разных скриптов. Вот формат строки для подключения mongodb+srv://<user>:<passworn>@<claster>.xnxtm.mongodb.net/<collection>?retryWrites=true&w=majority В одном я в collection пишу shop и все подключается, во втором скрипте в collection я пишу bot и мне выдает ошибку подключения. Можно ли вообще так подключаться ?
Xlebp
Проверяйте сетевую доступность и корректность введенных данных
Все введено правильно. С помощью атласа я могу подключиться к обоим коллекциям
Xlebp
У меня есть index.ts, в нем запускаются файлы shop.ts и bot.ts. В двух последних подключение как на скриншоте, в ссылке подключения меняется только название коллекции. Подключается та база, которая раньше стартует. А вторая просто выдает ошибку
Xlebp
А какая ошибка?
Error: MongooseError: Can't call `openUri()` on an active connection with different connection strings. Make sure you aren't calling `mongoose.connect()` multiple times. See: https://mongoosejs.com/docs/connections.html#multiple_connections
Xlebp
Так, а мне то их 2 надо
Xlebp
У меня в одном кластере 2 базы фактических
Nick
Так, а мне то их 2 надо
Нет, вам нужно в одном месте только подключиться, а потом использовать клиента для работы. Это чисто js тема, советую погуглить в то вменяемо рассказать как делать правильно не смогу
Nick
Тогда советую начать с основ js и работе с глобальным состояниеми экспорты туда же
Xlebp
Вы хотите сказать, что мне надо подключаться не так mongodb+srv://<user>:<passworn>@<claster>.xnxtm.mongodb.net/<collection>?retryWrites=true&w=majority А вот так ? mongodb+srv://<user>:<passworn>@<claster>.xnxtm.mongodb.net
Nick
Вы хотите сказать, что мне надо подключаться не так mongodb+srv://<user>:<passworn>@<claster>.xnxtm.mongodb.net/<collection>?retryWrites=true&w=majority А вот так ? mongodb+srv://<user>:<passworn>@<claster>.xnxtm.mongodb.net
я хочу сказат ьчто ваша проблема в том как вы пишите код на js, а не в подклчюении к монге. Клиент монги должен подключаться только один раз и дальше должна идти работа с ним, а вы зачемто инициализируете несколько клиентов
Xlebp
У меня 2 бота для телеграмма как один проект, вот я и раскинул их в разные папки и собираюсь сделать в одном кластере для них раздельные коллекции. P.s причина для объединения в один проект двух ботов - есть
Алёна
Дарова, парни.
dnacd 🦜
Дарова, парни.
секс не предлагать
SoulSilence
секс не предлагать
Не любитель? 🤔
Дима
а можно как-то сделать выборку только из тех чисел которые не целые?
Дима
вот например есть 10 юзеров и у 2 из них баланс 123.12 у остальных целые числа, как мне выбрать тех 2 юзеров?
Nick
вот например есть 10 юзеров и у 2 из них баланс 123.12 у остальных целые числа, как мне выбрать тех 2 юзеров?
а там где целые числа какой тип данных? если там инты, а у тех у кого дробные double то можно использовать $type https://www.mongodb.com/docs/manual/reference/operator/query/type/
Nick
Double везде в этом и прикол
тогда только через вычисление остатка, конвертация к инту ($toInt) и потом сравнение с исходным числом и если отличается, то ваш вариант
Коля
Кто знает, как wav файлы в монго сохранять?
Cloud
не надо хранить файлы в базе
Mike
Кто нибудь знает ответ на данный вопрос? https://ru.stackoverflow.com/questions/1412793/%d0%9d%d0%b5-%d1%83%d0%b4%d0%b0%d0%b5%d1%82%d1%81%d1%8f-%d0%b2%d1%8b%d1%82%d0%b0%d1%89%d0%b8%d1%82%d1%8c-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8%d0%b7-%d0%b1%d0%b0%d0%b7%d1%8b
Коля
не надо хранить файлы в базе
А если это голосовое сообщение
Влад
Danil
здравствуйте, а в python можно ли сделать два подключения к монге и так использовать две базы?
lmn
А что мешает
Sergey
Коллеги, дайте подсказоньку плиз? Надо из User.find({}) который состоит из name, password и id - достать только id и name. Так можно сразу из БД достать? Или берем все и потом изменяем? Грубо говоря мне надо аналог SELECT name, id FROM Table Заранее спасибо!
Sergey
https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results/
Божечки, зарплату тебе в евро и друзей не пьющих!
Nick
Кто нибудь знает ответ на данный вопрос? https://ru.stackoverflow.com/questions/1412793/%d0%9d%d0%b5-%d1%83%d0%b4%d0%b0%d0%b5%d1%82%d1%81%d1%8f-%d0%b2%d1%8b%d1%82%d0%b0%d1%89%d0%b8%d1%82%d1%8c-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8%d0%b7-%d0%b1%d0%b0%d0%b7%d1%8b
плохая затея использовать в качестве имени поля какойто номер. Далее то что касается 3 вопроса там - чтобы сделать выборку надо передать в файнд квери - который должен быть объектом запроса, а не просто какойто набор данных. А выборку надо делать через точку {6123.VOL: 123}
Sergey
https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results/
А можно чутка попаразитировать на доброте? =) А можно как-то заставить монгу выдавать данные, в том порядке, в котором мне надо, а не ей - сейчас у меня все значения с датами(ну в смысле Новый год и т.д.) приходят последними в объекте...
Sergey
Sergey
добавьте сортировку через sort()
sort не за сортировку выдачи разве отвечает - я применяю ее - она сортирует сами объекты, не поля...или надо куда-то еще sort добавить?
Sergey
@yatoba все, кажется сам тнашел, сортировка курсора по ходу! Спасибо!
Andrew
Добрый день скажите пожалуйста, если у меня после оператора $match в поле - массив и я хочу по нему "подтянуть" через lookup pipeline развернутые данные, как правильней это написать? Спасибо!! у меня массив из $permissions... { 'from': 'permissions', 'let': {'perm':'$permissions'}, 'pipeline': [ {'$match': {'$expr': {'$eq': ['$name', '$$perm']}}}, {'$project': {'_id': 0}} ], 'as': 'permissions' }