@MongoDBRussian

Страница 172 из 342
IGOR
04.01.2018
10:55:37
после PHP чет с Node не могу подружиться именно в рабое с БД, почему не сделали просто результат ложить в переменную и обрабатывать, непонимаю, вообще в голове не укладывается как блин с этим работать

keystr0ke
04.01.2018
10:56:13
это асинхронная модель, вы привыкните)

IGOR
04.01.2018
10:57:58
это асинхронная модель, вы привыкните)
Хорошо, другой вопрос. Может я не правильно изначально начал и проще было замутить API?

keystr0ke
04.01.2018
10:58:05
вот тут человек рассказывает ровно о такой же ситуации как у вас. Должны отпасть вопросы "почему так?" - https://habrahabr.ru/post/150788/

Google
keystr0ke
04.01.2018
10:59:26
просто не пытайтесь разрабатывать на NodeJS так же как разрабатывали бы на PHP, просто примите другую парадигму :)

Sergey
04.01.2018
11:09:43
Просто не пытайтесь разрабатывать на NodeJS. И на этом можно поставить точку

Alexander
04.01.2018
12:23:40
Vitaliy
05.01.2018
09:15:11
Всем привет. Я новичек в монго. Почему подсвечует инсерт? подскажите плз



Zloy Dobriy
05.01.2018
09:24:39
Опять.

Stepan
05.01.2018
09:26:25
Zloy Dobriy
05.01.2018
09:26:57
Вот, для кого кодпкны, сниппеты, и другие сервисы обмена когодом.

Stepan
05.01.2018
09:29:54
своему клитеру
Ну ты прям действительно злой :)

Zloy Dobriy
05.01.2018
09:30:24
Когда творят хуйню, - очень

Stepan
05.01.2018
09:31:38
Когда творят хуйню, - очень
Хм. И где же я сказал что-то, что по твоему мнению, является хуйней?

Google
Zloy Dobriy
05.01.2018
09:32:42
Ты, нигде.

Адресовано чуваку со скриншотом кода

Stepan
05.01.2018
09:33:27
А ок, тогда все понятно :)

GNU/Docker
05.01.2018
09:42:47
Вот, для кого кодпкны, сниппеты, и другие сервисы обмена когодом.
Вопрос про подсветку, как ты увидишь красную подсветку на пасти сервисе?

Denis
05.01.2018
10:05:59
Может есть пример кода где через = можно переменной присвоить переенной результать findOne ?
В сторону async/await смотри, там как раз работа с асинхронным кодом выглядит почти так же как ты привык видеть в синхронном php

yopp
05.01.2018
10:45:59
своему клитеру
Вы либо помогаете, либо молчите. Хамить тут не надо.

Stepan
05.01.2018
12:49:43
Здравствуйте, можно ли через текст индекс сделать поиск по буквам слова ?

Zloy Dobriy
05.01.2018
13:32:37
Nick
05.01.2018
13:37:49
yopp
05.01.2018
13:38:13
Это сарказм, ничего линочного
Своё остроумие проявляйте в других местах, например в ru_dba. Тут такое отношение неуместно

Stepan
05.01.2018
13:42:50
Вот документ { "_id" : ObjectId("5a1db823f3f8316837512d54"), "name" : "зщшгнекуцйрпавіфівапр" } Создал текст индекс. Можна ли сформировать запрос через текстовый индекс так, чтобы вводя туда "з" мне также находило этот документ.

Так как сечас у меня работает только если искать целове слово "зщшгнекуцйрпавіфівапр"

Знаю, что так можно сделать через регекспу, но можно ли через $text ?

Sergey
05.01.2018
13:46:30
Full text search не так работает, он ищет формы слов

Stepan
05.01.2018
13:52:20
(

yopp
05.01.2018
13:52:34
Знаю, что так можно сделать через регекспу, но можно ли через $text ?
К сожалению нет, в монге partial match в $text не реализован

https://jira.mongodb.org/browse/SERVER-15090

если поиск по префиксу поля, то можно обойтись регуляркой

https://docs.mongodb.com/manual/reference/operator/query/regex/#index-use

Но надо учитывать что это будет case sensitive

Google
Stepan
05.01.2018
13:56:23
Ну я так и сделал, можно в options поставить і

yopp
05.01.2018
13:56:32
Точнее оно будет работать и с case insensitive, но это будет менее эффективно

Aleksandr
05.01.2018
13:56:41
время поиска увеличишь с опцией i

yopp
05.01.2018
13:57:32
Иногда дешевле сделать два запроса или в самой регулярке указать обе формы /^a|A/. Но это надо тестировать

Sergey
05.01.2018
14:02:51
Иногда дешевле сделать два запроса или в самой регулярке указать обе формы /^a|A/. Но это надо тестировать
Когда символов больше двух, это становится накладно. ? Возможно, имеет смысл хранить отдельное lowercase-поле, но тогда надо не забывать его обновлять.

yopp
05.01.2018
14:03:15
где-то так, да

Nick
05.01.2018
14:05:25
Можно развернуть строку в массив букв и уже понему сделать индекс

Sergey
05.01.2018
14:05:27
Кстати, а появившиеся в 3.4 collations не решают вопрос регистра символов? Я так их и не пощупал толком.

https://jira.mongodb.org/plugins/servlet/mobile#issue/SERVER-29865 Регулярки не поддерживается, но есть вариант с $gte/$lt

yopp
05.01.2018
14:20:26
Crazy
05.01.2018
19:39:47
Привет. У меня возник вопрос. На ubuntu 16.04 обычно у меня запускается монга, но когда я в конфиг файле пишу fork: true, то не запускается. Не знаете в чем проблема? Ниже 3 скрина. 1) статус монги 2 && 3) файл /var/log/mongodb/mongod.log

yopp
05.01.2018
19:47:46
Там же systemd

Зачем вам fork?

Crazy
05.01.2018
19:49:22
А когда делается репликация нужно обязательно ставить fork?

Я поэтому вставил

yopp
05.01.2018
19:50:57
Нет, не нужно

Fork нужен для запуска монги в фоне. Но если вы запускаете её как сервис, systemd решат эту проблему за вас

Crazy
05.01.2018
19:52:51
Окей, спасибо. Есть еще такой момент, до добавления узлов, где /etc/host нужно прописать ip адреса и их имена, если у меня в настройках bind_ip: 0.0.0.0 это обязательно?

yopp
05.01.2018
19:58:18
0.0.0.0 это «все адреса». Т.е. пакеты будут попадать в монгу вне зависимости от dst адреса.

То никак не связанно с dns. Точнее так: по хорошему на всех машинах в будущем кластере в hosts должны быть имена всех других машин, включая уникальное имя текущей машины.

Google
yopp
05.01.2018
20:00:34
Но на деле проще развернуть локальный днс

Crazy
05.01.2018
20:02:49
Да у меня просто авторизация включена, поэтому. Если я прописал 0.0.0.0 я могу сделать rs.add("ip") вместо rs.add("hostname"), или это не связано с этим? Прошу прощение за незнания, я впервые работаю с базой данных, поэтому сложно разбираться в администрировании

yopp
05.01.2018
20:03:42
Кажется можно и по ip

Crazy
05.01.2018
20:04:18
Окей, спасибо, попробую

yopp
05.01.2018
20:04:41
Но если это продакшен, то лучше найти способ честно развернуть с dns

Так будет проще администрировать потом

Crazy
05.01.2018
20:06:04
Окей, благодарю

Так будет проще администрировать потом
Привет. У меня возникла еще одна трудность( Репликацию я настроил. Есть 3 сервера: primary, secondary, arbiter. Когда я подключаюсь с другого сервера, например NodeJS сервер, как клиент и пишу такое: mongodb://login:password@ip1:27017,ip2:27017/database?replicaSet=database&authSource=admin Выходит ошибка: MongoError: failed to connect to server [database-arbiter.me:27017] on first connect [MongoError: getaddrinfo ENOTFOUND database-arbiter.me database-arbiter.me:27017] Не знаешь в чем дело?

А понял. Нужно было и на клиенте добавить все узлы реплики в файл /etc/hosts

yopp
06.01.2018
12:08:32
database-arbiter.me не резолвится

Crazy
06.01.2018
12:11:36
Не это я добавил в /etc/hosts -> ip database-arbiter.me

Просто у меня что-то добавление типа rs.add("ip") не получалось не помню какая ошибка была, а rs.add("hostname") добавляется после добавления в /etc/hosts

Dmitry
08.01.2018
11:10:48
Привет, курю маны и гугл на тему работы с $addToSet, насколько я понял оно работает только с полностью идентичными документами, если отличается хотя бы _id, то документ уже считается уникальным и вставляется в массив. Но вот никак не могу сообразить как вставить несколько документов за раз в массив, предварительно проверив существующие по конкретному полю. Направьте меня пожалуйста в нужную сторону?

Возможно нужно копать в другую сторону, например $push + $each или что-то такое

yopp
08.01.2018
11:15:17
Если я правильно понимаю задачу: то так не выйдет.

Либо проверяете на клиенте и делаете оптимистичный лок, либо по одному

Какую задачу вы в итоге хотите решить?

Dmitry
08.01.2018
11:25:38
У меня теги в виде поддокументов: {_id, title}, я передаю новый список тегов с клиента и мне нужно добавить те, которые есть в новом списке, но нет в монге (сравнивая по полю title), и удалить те, которых нет в новом списке, но есть в монге. Остальные не трогать. Я могу это решить на стороне клиента, загрузив список документов с тегами, там обработать и отправить обратно через $set. Но я предположил, что можно это реализовать на уровне субд

yopp
08.01.2018
11:27:40
Уберите title и оставьте только _id. Тайтлы доставайте из коллекции с тегами отдельным запросом.

Если критична вставка. Если критично чтение, то тогда на клиенте.

Google
Dmitry
08.01.2018
11:29:21
хм, так это приём из релативной бд, где каждая сущность в своей коллекции и связана по _id, монга же не такая?

yopp
08.01.2018
11:30:19
Монга любая, в этом весь кайф. Можно выбрать любую градацию между денормализацией и нормализацией

Вообще я вижу мало смысла в хранении тегов в виде id

Либо вы храните просто текст, либо вы храните только id

Хранить оба значения — бессмысленно.

Обновление имени тега будет требовать обновления всех документов, а значит профита от хранения id нет

Dmitry
08.01.2018
11:34:03
я еще не осилил главу про индексацию, возможно с моей стороны это действительно было усложнением. Но я предполагал, что документ с тегом у меня будет сложнее, например не только title, но и нормализованный url и что-то еще...

yopp
08.01.2018
11:37:07
Сначала определитесь как вы будете использовать документ внутри приложения.

Плюс оцените что у вас преобладает: запись или чтение.

Dmitry
08.01.2018
11:38:20
как обычные теги, формировать ссылку на выборку типа /tags/:tagName

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