
name
20.10.2017
14:34:59
я подключил бд и попробовал сохранить объект бд в переменной, чтоб потом обращаться к бд за пределами .connect()
но у меня не получилось
во всех примерах методы бд юзают только внутри метода подключения
значит, такой возможности нет или я просто тупой?

Google

Nick
20.10.2017
14:48:17
надо смотреть на драйвер - он либо может в асинхрон либо нет и действовать согласно докам

keystr0ke
22.10.2017
20:38:13
Привет, ребята, кто работает с mongo из go (mgo)? Как организовать пулл подключений? Создавать новую сессию при каждом запросе очень долго и очень нагружает БД, а использовать одну - медленно. Пробовал сделать простенький пулл самостоятельно, но увидел, что там уже есть что-то с этом ( типа maxPoolSize), насколько я понимаю, где-то там он реализован под капотом, но как его нормально использовать? Ткните пожалуйста носом в документацию, уже все посмотрел.

Yaroslav
23.10.2017
07:45:16
Привет, а почему монго всегда возвращает массив с одним элементом а не сразу этот элемент?

Aleksandr
23.10.2017
07:45:34
а запрос какой?
findOne тебе вернет этот элемент

Yaroslav
23.10.2017
07:46:51
db.getCollection('users').aggregate([{
$unwind: "$clickdaily.locations"
},
{
$lookup: {
from: "locations",
localField: "clickdaily.locations._id",
foreignField: "SQLid",
as: "location"
}
},
{
$group: {
_id: "$_id",
clickdaily: {
"$last": "$clickdaily"
},
locationNames: {
"$push": {"name": "$location.name", "id": "$location.SQLid"}
}
}
}
])

Sergey
23.10.2017
07:47:40

Aleksandr
23.10.2017
08:38:10
а как можно в хинт добавить на использование несколько индексов?
в запросе есть $or, для которого требуются разные индексы

keystr0ke
23.10.2017
11:01:59
Привет, ребята есть ли возможность проводить поиск по ObjectId с поиском подстроки?

Sergey
23.10.2017
11:25:47
По ObjectId Или по _id?

keystr0ke
23.10.2017
11:30:13
По_id который ObjectId

GNU/Docker
23.10.2017
11:31:13
Ээ

Google

GNU/Docker
23.10.2017
11:31:16
Зачем?

keystr0ke
23.10.2017
11:31:42
Планирую заводить отдельное поле, но вдруг можно как-то работать с ObjectId как со строкой и искать там подстроки
Ну нужно
Есть id и по ним нужен поиск
В смысле поиск подстрок в_id

Nick
23.10.2017
11:35:56
а можно пример вашего _id и пример запроса?
https://docs.mongodb.com/manual/reference/operator/query/regex/#index-use
и опять же просто сделайте explain

Sergey
23.10.2017
11:40:05
objectid - это не строка
http://bit.ly/xy_problem_ru

Nick
23.10.2017
11:41:43
чтото сдается мне что после фраз "Есть id и по ним нужен поиск" подразумевается как раз использование строки вместо oid

Sergey
23.10.2017
11:41:46
рекомендую к прочтению =)

keystr0ke
23.10.2017
12:14:40
Есть ObjectId и нужен поиск подстроки в нем, он не строка, а именно bson.ObjectId
Сделал отдельное строчные поле

Sergey
23.10.2017
12:16:52

keystr0ke
23.10.2017
12:18:14
Вопрос же ясно сформулирован :)

Sergey
23.10.2017
12:18:53
Вы решаете проблему Y, а надо - проблему X.

keystr0ke
23.10.2017
12:21:29
Проблемы Х нет. Пользователь ищет записи по их id и вводит, например, первые 8 символов, вместо полного id

Sergey
23.10.2017
12:29:36
Довольно странное решение давать пользователю objectid для каких-то операций с ним.

Nick
23.10.2017
12:30:48

Google

Nick
23.10.2017
12:34:17
я не телепат, поэтому все таки еще раз задам вопрос - как выглядит ваш id, если он уникален, то что мешает использоват ьег ов качестве _id, и третье - покажите пример запроса которым вы сейчас выбираете данные по доп полю с id

Vasyl
23.10.2017
13:22:47
делай отдельное поле с человекопонятным айди и не издевайся над людьми

yopp
23.10.2017
13:28:38
шестнадцатиричное представление просто для удобства
искать можно, но это будет поиск по диапазону, условно если ищем по первым 8 символам шестранцатиричного преставления, то _id: { $gte: ObjectId('4ecc05e50000000000000000'), $lte: ObjectId('4ecc05e5ffffffffffffffff')}.

Sergey
23.10.2017
13:42:00
В принципе, это даже автоматизировать можно ибо длина фиксирована, но кажется, что при проектировании где-то свернули не туда.

yopp
23.10.2017
13:52:51
ну почему, в хелпдеске искать по айдишникам

Sergey
23.10.2017
13:59:15
И так действительно делают, ощутил в прошлом на собственной шкуре, но всё равно считаю, что это проектировалось не для людей, раз приходится так делать.
В идеале (в случае с хелпдеском), по звонку нужного сотрудника должны автоматом подтягиваться все его задачи, чтобы по ним было легко найти нужную.

yopp
23.10.2017
14:05:01
ну мало ли что там у человека

Старый
23.10.2017
14:07:31
Всем привет, такой вопрос, на сколько сильно отличается mongo от cassandra в плане кластеризации без репликации

yopp
23.10.2017
14:07:45
две разные вещи совершенно
если ты про шардинг

Старый
23.10.2017
14:08:54
то есть, если например 10 нод монги по 500 гб, и где то данные полетели, вся конструкция жива, и данне недоступны только с той ноды, или так же как на кассандре, всё умерло?

yopp
23.10.2017
14:09:09
недоступны только те ноды, которые полетели
при условии доступности конфиг-серверов

Старый
23.10.2017
14:10:13
получается, что если выходят из строя конфиг сервера, или 1 из них, то всё? то есть они узкое место

yopp
23.10.2017
14:10:38
нужно чтоб роутер видел хоть один конфиг сервер

Старый
23.10.2017
14:11:05
я сейчас проверяю просто по проекту ттх, а тк работал больше с касаандра, сцилла, то вот думаю, что они там делают интересное

yopp
23.10.2017
14:11:56
не понимая проблемы которую надо решить, сложно дать какие-то рекомендации
вообще без репликации везде всё будет плохо

Google

yopp
23.10.2017
14:13:22
потому что нет избыточности и любой отказ, вероятнее всего, приведёт к общему отказу

Старый
23.10.2017
14:13:32
то есть у ноды что-то случилось при записи, встаёт весь кластер
и пишет, что на такой то ноде, такая то ошибка

yopp
23.10.2017
14:14:17
вопрос не очень понятен
что сделать-то надо?

Старый
23.10.2017
14:15:14
у меня есть подозрение, что люди из другого суббодрядчика фигачат монгу в аналоге rack1 у кассандры

yopp
23.10.2017
14:15:48
вы можете меня нанять, я вам аудит сделаю

Старый
23.10.2017
14:15:54
у меня опыт работы с монгой был как замены редиса с чуть большим функционалом
настродамус
я хотел узнать, схожи ли проблемы у mongo и cassandra, если они без реплик

yopp
23.10.2017
14:17:51
я возьму ваш кластер, изучу со всех сторон и напишу отчёт, в котором понятным языком расскажу что где не так и как это исправить. если нужно ещё аудит на соотвествие каким-то внешним требованям провести, то тоже пожалуйста.

Старый
23.10.2017
14:20:11
я возьму ваш кластер, изучу со всех сторон и напишу отчёт, в котором понятным языком расскажу что где не так и как это исправить. если нужно ещё аудит на соотвествие каким-то внешним требованям провести, то тоже пожалуйста.
да его нет ещё, тут ттх пишут, есть предположения которые я хочу подтвердить/опровергнуть, ранее могу юзал под другие задачи, поэтому в этих тонкостях не разбираюсь, а док надо бы сегодня отправить, потому думал распросить про те проблемы, что мне известны в кассандра/сцилла/ас, и сранить

yopp
23.10.2017
14:20:14
отказоустойчивость это очень сложно, тут надо смотреть на специфику

Max
23.10.2017
14:20:46
@dd_bb я вот, к слову, хочу лишний раз поблагодарить тебя за давние веские комментарии по делу.
когда-то сильно помог мозг в правльное место поставить.
спасибо!

Старый
23.10.2017
14:21:46

yopp
23.10.2017
14:21:50

Google

yopp
23.10.2017
14:21:59
если нужно проанализировать риски по отказам, это совершенно другая

Старый
23.10.2017
14:26:21

yopp
23.10.2017
14:26:31
эээ
монга это не jvm :)

Старый
23.10.2017
14:27:19
вижу уже, спутал

yopp
23.10.2017
14:27:24
там ручек, которые можно крутить не так много.

Старый
23.10.2017
14:27:59
я вообще пока ток 1 файл нашёл

yopp
23.10.2017
14:28:05
файл чего?

Старый
23.10.2017
14:28:10
прошлый раз вообще в дефолте юзал

Max
23.10.2017
14:28:12
конфигов )

yopp
23.10.2017
14:28:16
а. так он один и есть

Старый
23.10.2017
14:28:33
?прям шок и не привычно

yopp
23.10.2017
14:29:33
https://docs.mongodb.com/manual/reference/configuration-options/
вобщем-то это всё что можно покрутить