Yehor
Boris
привет, тебе запрос написать типо?
Получается, я создаю новую коллекцию, у которой одно поле ( по типу - массив ) должен иметь одинаковые элементы, что и в уже существующей ( наполненной ) коллекции
Boris
Просто я подумал, что раз уж это массив, то можно через map копировать, но что-то не получилось)
Yehor
Yehor
slice пробовал?
Araik
А как получить кол-во добавленных документов, если добавляется путем передачи параметра upsert в update ?
Araik
$result->getInsertedCount() и $result->getModifiedCount() возвращают 0, при этом в базу успешно все заносится
Araik
пишу в базу методом bulkWrite
Dave
Добрый вечер, никак не получается настроить реплика сет.
Хочу что бы было две ноды одна из них "живая", вторая просто синхронизированная для бекапов, но не выходит никак настроить.
Выполняю вот такую команду на первом хосте, и он становится SECONDARY с "could not find member to sync from" а host2 висят в "STARTUP"
Dave
Dave
с host1 у меня выходит зайти на оба host2 с помощью mongo host2:1338, аутентификация временно отключена
Dave
Создал с нуля новые профили — то же самое, я не понимаю что я делаю не так
inqfen
А host 2 может на host1:28018?
Dave
Dave
Версия монги везде такая же
inqfen
Кстати, а почему у тебя чётное количество с голосом
inqfen
Емнип в монге тоже кворум нужен
inqfen
А у тебя его не будет
Araik
Подскажите пжл, как правильно сделать update, задача выглядит следующим образом: Найти в коллекции tickets документ с нужным id, затем в массиве tickets_event этого документа, проверить, если там есть элемент с event_id - обновить элемент, если элемента нет, добавить
Artem
есть 178 миллионов записей в колекцие, 64 миллиона записей пренадлежат одному пользователю
когда я пытаюсь подсчитать количество записей которые пренадлежат одному пользователю
db.messages.find({user_id: 7147280}).count() то запрос выполняеться долго 10-20 + сек.
Что долго, на поле user_id добавлен индекс
Artem
Можно ли как то это ускорить
Artem
?
Araik
Подскажите, можно сделать выборку из базы по дате, если дата хранится как string ?
yopp
У вас всего две голосующие ноды, не обеспечивается требования кворума. Дайте всем нодам право голосовать, но тем, которые не должны выбираться как праймари установите нулевой приоритет
Araik
yopp
Artem
Artem
не для других
yopp
Одного пользователя которому принадлежит 64 млн записей?
Artem
да
Artem
Вопрос в том что elasticsearch с данной задачей справляется быстрей в разы
Artem
Тотал по всем записям тоже работает быстрей
Artem
а вто тотал по юзеру
Artem
причем user_id индекс
Artem
медленно
Nick
yopp
Покажите explain c executionStats
yopp
В принципе 6.5млн ключей за секунду это вполне хороший результат
Araik
а как свои ключи для массива внутри документа сделать? оО никак не пойму почему-то
Araik
это возможно вообще?
yopp
yopp
А значит нам надо обойти все совпадающие с условием ключи
Sergey
yopp
Count по большим диапазонам в любом случае дорого. Не знаю как это обходят в эластике, возможно у них там какие-то специфические структуры в индексах, которые позволяют это оптимизировать
Araik
пожалуйста 🙏 помогите мне кто-нибудь с обновлением элементов массива, уже часа 3 вожусь никак справиться не могу
Araik
Я так понимаю, единственный способ это сделать, использовать $set и upsert, а для данных указать конкретный элемент массива, судя по https://stackoverflow.com/questions/4473724/php-mongodb-update-a-value-in-an-array
Araik
но как при добавлении ключи массива сделать ассоциативными, не пойму никак 😔
Araik
Araik
сейчас реализовано вот так, но в этом случае, данные не обновляются, а только добавляются
Araik
я уже даже не знаю, то ли так оставлять, потому что вроде как маловероятно, что данные могут обновится, то ли в отдельной коллекции хранить
Araik
🤯
Araik
судя по тому, что в Mongo Atlas тоже нельзя редактировать ключи массива, значит это невозможно?
Araik
Artem
Nick
Araik
да
Araik
у меня массив объектов, который можно идентифицировать по id, мне нужно либо обновить, либо если отсутствует добавить
Araik
Nick
Araik
event_zid подходит под это поле
Araik
сейчас я ищу в коллекции документ с нужным id, затем добавляю в массив events объекты, если отсутствуют
Araik
не могу понять, как сделать так, чтобы если объект существовал, то данные обновлялись, а если отсутствовал, то добавлялся объект
Araik
Araik
что только не пробовал, просто какая-то невозможная задача
Nick
В один запрос сходу не придумывается
Araik
у меня уже 5 час идет наверное на обдумывание и попытки сделать это))
Araik
пришел к 2 вариантам, либо хранить в отдельной коллекции, либо не обновлять т.к. в принципе маловероятно, что эти данные обновляются вообще
Araik
в один документ хотел запихнуть чтобы выборки проще делать было
Гена
Коллеги, столкнулся с такой ошибкой при mongodump
Failed: error writing data for collection **** to disk: error reading collection: EOF
Гена
Как есть решения?
Ilya
я конечно понимаю что ошибка чтения - но все же - места там хватает куда дамп складывается?
Гена
да
Ilya
https://stackoverflow.com/questions/36031857/mongodump-error-failed-error-reading-from-db-eof-no-entries-in-server-log
Ilya
там про память говорят
Гена
пробовал
не помогло
Ilya
а по факту реально большая коллекция?
Гена
да
он ругается что оплог большой