yopp
Короткие идентификаторы должны проходить по статье растрата
yopp
И приводить к дисциплинарным взысканиям
Александр
Спасибо :)
RapidCodeLab
Для веба использую slug от тайтла, внутри админок по objectid , автоинкрементное поле реально нафиг не нужно имхо
Александр
yopp
TL;DR: для ссылок всё что угодно, безопасность к идентификаторам никакого отношения не имеет. Для людей псевдослучайные идентфикаторы набранные алфавитом в котором нет оптически похожих глифов
RapidCodeLab
ну да, если по русски
Александр
Ну всё равно, есть места, где случайные и obectId неуместны. "Ваша очередь: 10040405501" Или "Ваш заказ: 5d49be3a3802d750b0c084c6"
Александр
...назовите его при получении :)
yopp
yopp
там всё именно так и есть. Заказ К53Ж5721-5835/1
Aleksandr
Там где нужен короткий человеческий номер я генерю инкрементом в редисе
Aleksandr
Очень удобно и тредсейф бтв
Александр
С инкреентом - понятно. А вот с псевдослучайными - появился вопрос. Колизии?
yopp
Александр
уникальный индекс
Это тоже само-собой. Вопрос в том, что надо обрабатывать случай при появлении ошибки дублирования.
Sardor
Ребят, подскажите, пожалуйста, как использовать updateOne(), чтобы он изменял значение некоторых элементов, а другие не удалял? Вот такой код удаляет все другие значения и оставляет только указанные
Aleksandr
Daniil
$set не удаляет не изменяемые поля документа. Вы уверены, что есть совпадение по chanId? Возможно у вас просто создается новый документ, т.к. стоит флаг upsert: true
yopp
Alexey
Коллеги, всем привет. Скажите, можно ли шардировать узлы реплики?
Alexey
Я знаю, что можно реплицировать шарды, а наоборот?
yopp
Что значит «шардировать узлы реплики»?
Alexey
То есть, чтобы каждый узел реплики представлял из себя набор шардов
yopp
Расскажите о своей проблеме
Alexey
Поднимаю реплику на нескольких серверах. Но на них по два винта. Raid делать не хочется, а нужно использовать все доступное место, но чтобы внутри сервера данные не дублировались
Anonymous
T_T
yopp
Поднимаете две монги, каждой dbpath на свой диск
yopp
Но это не очень хорошая идея
yopp
Ещё есть вариант часть коллекций переместить на другой диск, сделав симлинки
Alexey
Я мельком прочитал пару статей. Просто решил узнать, возможно ли это, пережде чем, как погружаться в тему глубже.
yopp
Возможно что?
yopp
Нет, в той формулировке в которой вы озвучили задачу в монге это невозможно
Alexey
Разделить данные одного узла между винчестерами
yopp
В вашем случае наиболее вменяемое с точки зрения операционной простоты решение это поднимать несколько монг, но это увеличивает риски недоступности при отказе и у вас будет сильно больше требований к свободным ресурсам
Sardor
@aliovin, @d_lebedinsky, проверю, спасибо!
Alexey
Aleksandr
неужели кто-то работает напрямую с железом
Aleksandr
бррр :) я шесть лет только на виртуалках
Aleksandr
извиняюсь за офтоп, просто до сих пор помню ужасы как конциционеры от резервных батарей запускать
Alexey
Ну, виртуальный/физический - решать не мне))
Hallo
@dd_bb можно ли нормально компрессировать jsonb? мне тут говорят когда jsonb ребята gzip’ят он нифига не сжимается.
yopp
хз
Nick
Nick
Вот это самое "сохраняем в жсонб" как выглядит? Может там уже указывается сжатие. И опять же какого рода данные вы сжимаете?
yopp
yopp
в какомнибудь json совместимом формате
Nick
И что собсна за либа
Max
привет. была жирная коллекция с индексами на ней - почистил коллекцию - остался жирный индекс - не подскажете - как правильно "попроссить" переиндексировать все индексы на коллекции?
yopp
индексы автоматически обновляются
Max
понял, спасиб
Sardor
Монговчане:) А в каких случаях Монга может не удалять документ при том, что параметр поиска точно совпадает и вызов deleteOne() не выдает ошибок?
Есть вот такая строка кода:
await db.collection('published').deleteOne({ chanId: key.chanId })
key.chanId получены выше этого же самого документа. Код выполняется, идет дальше, никаких ошибок не выходит, но и документ не удаляется
yopp
yopp
включите отладочный лог в монге и посмотрите что документ создаётся до того как вы его пытаетесь удалить
Aleksandr
еще может быть в названии коллекции опечатка
Sardor
когда документа ещё нет
Но у меня он есть. Опишу полный сценарий:
Выше в коде собираются все документы из конкретной коллекции — идет итерация пов сем документам и проверка условий — при выполнении условий, конкретный документ должен удалиться. Т.е. документ итерируется только в том случае, если он уже создан
Sardor
Aleksandr
тогда надо весь код смотреть, в той строчке ошибок нет, должно удалять
Aleksandr
кстати, может быть там больше одного документа chanId: key.chanId
Aleksandr
удаляется один, а остальные остаются
Sardor
Sardor
Oleksii
здравствуйте
как можно исправить данную ошибку?
Oleksii
Репозиторий «http://repo.mongodb.org/apt/ubuntu tessa/mongodb-org/3.0 Release» не содержит файла Release.
Oleksii
это можно как-то исправить?
Denys
Я не сильно шарю в ubuntu
Oleksii
Ilya
Является ли aggregation атомарной операцией, особенно если использовать оператор $merge для записи результатов в другую коллекцию?
Никита
Никита
ибо 3.0 стар как мир
Oleksii
Ой
Oleksii
Не о том думаю
Никита
не, чисто убунтовский
Slava
Всем привет!
Помогите, пожалуйста, построить запрос на mongodb:
Есть коллекция
{
...
positions: {
type: {
position: String,
status: String
}
}
}
Нужно выбрать из коллекций все элементы, где positions.position содержится в массиве positions и positions.status === status
Дошёл только до такого :
collection.find({
$and: {
'positions.position': { $in: positions },
'positions.status': { $eq: status}
}
})
Но выборка статуса и позиций происходит не относительно одного элемента, а из всех