yopp
Так как в любом случае по price должен быть индекс, то задача рассчитать boundaries она совсем не сложная: надо только самую большую цену взять.
yopp
И если уже и делать патч, то это в $bucketAuto добавить в granularity что-то в духе autoBoundary: { step:, [min:], [max:] }
Gor
еще один вариант, когда надо сгрупировать по двум координатам
Gor
например кластеризакция GeoJSON POints
Gor
грубо говоря - надо сгрупировать все points которые находятся друг другу на дистации Н
Gor
при этом без разбивки на сетку. иначе групировка выглядит не натурально
yopp
Мне не нравится ваше решение
Gor
в случае 2d индекс поля $coordinates =[lng, lat] выборка будет вот такая [ { $match: {ТУТ Условия выборки, аля $geowithin} }, $cluster: { groupBy: "$coordinates", delta: 500, output: { count: { $sum: 1}, BoundsNorth: { $max: { $arrayElemAt: [ "$coordinates", 1 ]}}, BoundsSouth: { $min: { $arrayElemAt: [ "$coordinates", 1 ]}}, BoundsEast: { $max: { $arrayElemAt: [ "$coordinates", 0 ]}}, BoundsWest: { $min: { $arrayElemAt: [ "$coordinates", 0 ]}}, } } } ]
yopp
Во-первых я всё ещё не вижу достаточных оснований для того чтоб из этого делать отдельный шаг
yopp
Во-вторых шаг получается для какого-то совершенно узкого круга задач
yopp
В-третих, логика работы не прозрачная
Gor
ну так и я начал собственно писать с того, что нужны динозавтры-монстры-сеньоры - на обычных задачках такого не встретишь )
yopp
Если говорить о задаче автоматического создания бакетов, то вероятно более эффективным решением будет поддержка expr в bucketAuto
yopp
Для первой задачи писать свой шаг в AF — оверкил
yopp
Вторую я не понимаю.
Gor
это из задач подмножества групировки больших данных. Обычно анализ данных локации, покупательской корзины, маркетинговые и отчетные задачи. приходилось сталкиваться с таким подмножеством, при этом что б запросы выборки делали не 10 секунд а меншье 1?
yopp
Если ваша задача требует постоянных тяжелых агрегаций, то вам надо не патч в AF делать, а схему менять
Gor
🤦‍♂️
yopp
Потому что вычислительную сложность никуда не спрятать.
Gor
смотри. у тебя есть канада (не много не мало) с лимоном недвижимости.
yopp
У меня есть 2 утра субботы, я пойду спать.
Gor
юзер по карте двигается и тебе необходимо показывать реалтайм данные записей неджвижимости на рынке
yopp
А вы пока подумайте над expr в granularity
Gor
с групировкой по визуально видимой части - тоесть на 1см кв экрана не ставить 1000маркеров а 1 маркер с цифрой 1000
Gor
А вы пока подумайте над expr в granularity
бакет не умеет 2х размерный масив групировать по дельте
yopp
Чтоб туда передавать значение и оттуда возвращать значение для бакета
Gor
подумай как его сделать)
yopp
Ваша дельта это очень узкий случай, я ещё раз повторю
Gor
уххх.
yopp
подумай как его сделать)
Да и думать нечего. Спереть из любого другого стейджа. На вход подавать значение, выходное значение использовать как бакет
Gor
чел извини но это явно waste of time.
yopp
чел извини но это явно waste of time.
Вот я пока такого мнения про ваш $cluster
Gor
да мне не жалко) спасибо за фидбек
yopp
И почти уверен что от монговцев скепсиса будет ещё больше
yopp
Идею с $expr или ещё каким-то инструментом который позволит трансформировать значения в номер бакета я поддержу, это звучит очень разумно
Gor
и за ваше время - тоже спасибо. все же было потрачено и ваше время на это обсуждение.
yopp
И у этого больше спектр применения. Можно округлять, умножать, делить, брать остатки или действительно работать со сложными ключами, типа массивов
Hellomik
хай кто знает в чем проблемма ?
Anonymous
хай кто знает в чем проблемма ?
мож от имени администратора запускать нужно?
Hellomik
запускал
Hellomik
да все исправил
Hellomik
там надо было в service зайти
Hellomik
поменять какую та хрень и какая магия крч ну каким то образом это штука перестала выходит, крч шайтан машина
Anonymous
Привет! Я юзаю mongoose. У меня есть следующая схема: new Schema( { key: [ { key1: String } ] }); Можно обратиться КО ВСЕМ key1 в запросе?
Anonymous
Нашел в документации
Rinat Valiullov
Всем привет! Вот вам, чтобы не скучно было в воскресенье https://youtu.be/0vPt7GI-2kc
yopp
Всем привет! Вот вам, чтобы не скучно было в воскресенье https://youtu.be/0vPt7GI-2kc
С подключением! Этому клипу через 11 дней будет 2 года ;)
Bro
чето монга медленно работает =(
Bro
щаз попробую твики
Bro
вроде read_preferences
V
ребята а в sharding уже транзакции?
yopp
Обещали в 4.2
Veaceslav
Привет. Ребят а подскажите плиз что делать когда у тебя уже есть объекты в коллекции и ты решил добавить ещё одно поле ? Как можно всем объектам создать это поле и дать дефольтное значение ?
Veaceslav
Заранее спасибо
Nick
зачем вам это делать в базе? что помешает в приложухе делать првоерку. на нличие значения и еслинет использовать дефолтное?
Nick
в общем случае, если вдруг у вас чиста работа с бд - updateMany. Если вдруг монгус, то можно просто в схеме указать дефотное значение и в приложухе будет все оно, если в базе его нет.
Nick
еще раз, зачем оно вам в базе? оно будет видно в приложении, это не досточно?
Gleb
Привет, подскажите, как объеденить значения при Answer.findOneAndUpdate({ _id: ObjectId(answerId) }, { tags: data.tag }, { new: true }).exec() Если в кратце, нужно сделать tags: [...prevTags, data.tag]
Nick
$push и тип для tags array
Gleb
есть ли какая-то функция assign ?
Gleb
попробую, спасибо
Nick
и гляньте addToSet
Gleb
и будет необходимость заменять и удалять еще
Nick
на случай если вдруг могут дубли приелтать
Veaceslav
еще раз, зачем оно вам в базе? оно будет видно в приложении, это не досточно?
Оно мне нужно в базу так как я использую его потом на фронте и если его не будет я получаю ошибку.
Veaceslav
У меня views это array и если его не будет я не могу сделать array.lenght
Nick
во фронте каким образом вы попадаете в базу?
Veaceslav
apollo-client
Veaceslav
Если я вас правильно понял
Nick
а ок, значит вы в базу лезете не только через своб приложуху
Nick
тогда вам updateMany
Veaceslav
Я думал может есть что-то вроде rapair который прошелся бы по схеме и поставит все поля которых нет
Nick
когда вы используете монгсу, то предполагается, что во всех местах вы к базе лезете через монгус и одинаковые схемы
Nick
а апполо клиент через монгус работает?