Vladimir
yopp
Anonymous
Зачем?
Мне нужно в таком формате хранить
Vladimir
Может их просто на клиенте добавлять?
yopp
в принципе, у натуральных чисел принято опускать ведущие ноли, так как они не имеют смысла
Vladimir
Anonymous
Vladimir
Если нужны ведущие нули, то храни в строках
Vladimir
Но они тебе не нужны скорее всего
Anonymous
Anonymous
Но потом по выборке как получить первый элемент такого массива? Если были бы условно числа, можно было бы использовать $gte, $lte
Anonymous
Можно получить весь документ и забрать конкретный элемент, но хочу его сразу получить от монги
Vladimir
Храни вт отдельном поле минимальный элемент
Anonymous
Спасибо за мысли, постараюсь сделать как можно лучше
Vladimir
Но мне все еще кажется, что тебе не нужны ведущие нули, ты всегда их можешь восстановить на клиенте
Vladimir
А хранить инты дешевле
Vladimir
Anonymous
Захар
как удалить последнюю запись из бд?
Андрей
есть кто работал с монго в шарпе ?
Анатолий
Дмитрий
Народ, подскажите, есть ли инструменарий для автоматического развёртывания монги, сейчас я вручную создаю инстансы, правлю отдельные конфиги для них. Кажется. делаю это неправильно…
Может какой скрипт или апп?
Bogdan
Vladimir
Philipp
Ребят, а если документ больше 16МБ его только как файл в GridFS хранить? Нет вариантов как-то автоматически его бить на поддокументы?
Philipp
Или только вручную, разделять на модели и т.п.
Daniil
Daniil
проще всего изменить схему
Philipp
Semeon
Чат, вопрос немного абстрактный, но всё же. Что лучше? Самому поднимать «Монгу» или использовать, скажем, «Атлас»?
Semeon
Valerii
Приветствую. У меня такая проблемка, есть бд для шопа, решило сделать небольшой рефакторинг. Раньше было так, в магазине были категории и одна категория - одна коллекция, один товар - 1 документ этой коллекции, получалось немного неудобно, тк нельзя внести информацию о категории, теперь коллекция с категориями одна, 1 категория - 1 документ в коллекции, а товары - элементы массива. Приложу скрины структуры, так вот, к сути. Был aggregate запрос, который подбирал ближайший документ в коллекции по значению к числу (https://pastebin.com/2Emjj83x), теперь вот не получается сделать чтобы он подбирал ближайший элемент массива...
Valerii
Valerii
Araik
На вопрос не отвечу, но могу предложить для ознакомления эту статью https://www.mongodb.com/blog/post/retail-reference-architecture-part-1-building-flexible-searchable-low-latency-product
Leonid
Надеюсь я по адресу, подскажите пожалуйста как в монге 3.4+ можно сослаться на текущее значение поля внутри итератора по коллекции. Вот запрос чтобы было понятнее
db.getCollection('some_collection').findAndModify({
query: {
user_id: {
$in: [
3,
4
]
}
},
update: {
$set: {
"field": "some value",
"field2": "some value2",
user_id: "тут текущий ид юзера из обрабатываемой коллекции",
is_active: 0
}
},
upsert: true
});
Nick
Leonid
😢
Nikita
$match: {
finish: {
$gte: startOfDay,
$lte: endOfDay
}
}
гайз как найти сущности которые не входят в текущий диапозон startOfDay - endOfDay? $not не работает 😕
Nick
Dezmunt
Как обновить сразу несколько массивов в документе за один запрос? Я пытался так [ { $set: { 'filed.links': { $push: { 'link': { $each: data.links } } } } }, ... ]
Захар
Dezmunt
Anton
Всем привет! Держу ops-manager в k8s с тремя репликами бд для него. Размер этих реплик люто растет каждый день и за пару месяцев переваливает за 15гб. Насколько я понимаю, там хранятся все пинги и всякий verbose за всё время. Подскажие, пожалуйста, могу ли я как-нибудь настроить очистку этих данных или поменять уровень хранимых логов? В интерфейсе и в гугле ничего не нашел
Dezmunt
Каким запросом можно найти документы у которых в массиве есть определенный элемент?
Bogdan
Dezmunt
Dezmunt
field: [ 1, 2, 3] --> надо найти все документы у кого есть в поле field массив с 2-кой
Dezmunt
А мы можем получить рандомный элемент из массива в одном документе? В гугле нашел про поиск документов через $sample, но эт не то
Dezmunt
Nick
Dezmunt
есть 500кк записей в массиве, и есть необходимость из этого массива брать случайное значение. Можно его просто получить и выбрать рандомный элемент, но может быть можно это все сделать на стороне БД?
Nick
собсна вопрос именно зачем именно случайное
Dezmunt
Nick
на 500кк записей скип лимит будет печально работать
Nick
а данные статичны или постоянно добавляются?
Dezmunt
Nick
Bogdan
нужен просто рандомный элемент из жирнющего массива
да, выборка на 500к будет скипать долго, если попадется большое значение для скипа. возможно имееет смысл добавить номер для каждого поля (как auto increment) из 500к и не скипать, а искать уже по конкретному id от 0 до 500к, это поле будет проиндексировано и будет летать. если данные удаляются, тогда нужно доработать алгоритм, чтобы ваша функция начинала повторный поиск каждый раз, когда нет записей по рендомному id, если записи не удаляются, тогда не должно быть проблем.
Nick
да, выборка на 500к будет скипать долго, если попадется большое значение для скипа. возможно имееет смысл добавить номер для каждого поля (как auto increment) из 500к и не скипать, а искать уже по конкретному id от 0 до 500к, это поле будет проиндексировано и будет летать. если данные удаляются, тогда нужно доработать алгоритм, чтобы ваша функция начинала повторный поиск каждый раз, когда нет записей по рендомному id, если записи не удаляются, тогда не должно быть проблем.
там 500кк, такчто рендомный скип все положит, но с какимто номером вполне можно выжить, но если данные динамические и я так понял что могут удаляться, то сохранение нумерации станет отдельной проблемой
Bogdan
yopp
Если это objectid, то хватит знать самый младший и генерировать между ним и тем, который будет в текущую дату
Dezmunt
А если так, я создам поле где буду хранить величину массива, потом буду рандомить число в этом диапазоне, и получать доступ по индексу
yopp
При не очень равномерном распределении oid будет не идальго случайно, но можно сделать три запроса и с тремя случайными номерами и выбрать случайное из трёх
yopp
Nick
yopp
OID в префиксе содержит дату. Вам нужно выбрать случайную дату между самой первой датой и текущей
Dezmunt
yopp
И выбрать к ней ближайший oid
Nick
500кк
ок, тогда вопрос вы имеете ввиду коллекцию а не массив
yopp
Минимальный нужно выбрать один раз и его можно закешировать
yopp
В принципе выборка минимального значения это поиск первого за $MinKey