yopp
практически уверен что раза в 10 минут и кнопки «обновить сейчас» хватит за глаза :)
Anonymous
ну тут соглашусь, думаю так и определим с заказчиком) еще раз спасибо)
Ilya
Зачем вам вытаскивать данные?
Если в кратце, то у меня есть 2 массива. В массив номер 1 пишутся некоторые числа. Когда длина массива 1 достигает 100, по всем этим 100 значениям находится среднее арифметическое и записывается в массив номер 2, в то время как массив номер 1 полностью очищается. Кроме того, в массив номер 2 записывается не просто цифра, но объект, с полями value(среднее арифметическое) и timestamp(Date.now), для того, чтобы этот массив очищать - в нем должны храниться только значения за последние сутки. Я все это сделал с помощью updateOne + aggregation pipeline, одним запросом. Только эта функция у меня получилась настолько громоздкой и тяжелой, что выполняется она в среднем за 400мс.
Ilya
К примеру, для того, чтобы для массива 2 отсеять устаревшие значения (позже последних 24 часов), мне приходится использовать $filter. Судя по всему, он пробегается по всему массиву, а если у меня там несколько тысяч значений лежит, то естественно, что функция будет выполняться медленно. Я поначалу хотел просто $slice использовать, но потом осознал, что у меня не получиться получить индекс для обрезания
yopp
а какую проблему вы решаете?
yopp
а что за статиситика и что за сложности с расчётами?
IB
Добрый ночи всем
IB
Добрый вечер Вопрос по не теме var ru en _______________ msg привет hello Как можно взять msg+1 элемент (привет) Как можно взять msg+2 элемент (hello) Вопрос связанный с mongodb библиотека mongoengine
Nick
Можно с маленьким примером
https://docs.mongodb.com/manual/reference/operator/query/
Anonymous
Друзья, подскажите, ынтырпрайзную версию Монги можно в деве/паленьком проде безпроблемно юзать?
yopp
Нет
Anonymous
Тот же оракле особо не парится с защитами
yopp
Точнее так, легально нет
Anonymous
Я про технические ограничения
yopp
Легально Q&A и Dev версии стоят 50% от полной лицензии
yopp
Это нарушение лицензии
yopp
В остальном: вы можете её использовать в ознакомительных целях, там нет ограничений
Anonymous
приятно, спасибо.
Гена
Ребята, подскажите пожалуйста. У меня при подключении к ноде в реплике Failed: error connecting to db server: read tcp *****: i/o timeout вот такая ошибка НИчего к ней не подключается
Гена
оператива в норме
Alexandr
всем привет, подскажите по replicaset, как сделать ha для неё? вот есть у меня два инстанса db1 и db2, один primary, другой secondary если я выключаю примари, а потом снова включаю его, у меня ошибка что хост not master
yopp
есть корректный вариант — добавить третью ноду или менее корректный вариант — добавить арбитра
yopp
Ребята, подскажите пожалуйста. У меня при подключении к ноде в реплике Failed: error connecting to db server: read tcp *****: i/o timeout вот такая ошибка НИчего к ней не подключается
проверьте что монга слушает на нужном интерфейсе, правила файрволлов у клиента и сервера позволяют соединение на порт монги, между клиентом и сервером вообще есть линк
Гена
проверьте что монга слушает на нужном интерфейсе, правила файрволлов у клиента и сервера позволяют соединение на порт монги, между клиентом и сервером вообще есть линк
Не подходит. Оно троит не всегда. Из признаков сначала оперативу всю почти есть, потом если баунсишь не поднимается, потом не спекается. В итоге решение инишиал синк
yopp
что такое «троит», «баунсишь» и «спекает»?
Гена
Извини) троит - лагает. Не даёт залогиниться через шелл, например. Баунсить - рестартить. «Спекает» это т9, сорри. Не синкается. В итоге я не знаю на что ругаться. На монгу или на сервак. Плюс потом появляются какие-то адовые гэпы
yopp
Есть арбитр и он указан последним в коннекшн стринг
арбитр необходимо в кластер добавить, в через rs.config/rs.add
Alexandr
Да вроде добавлен, не могу сейчас посмотреть, но спасибо за наводку
yopp
если арбитр есть, то смотреть что в логах
yopp
но если у вас 4.x и вы хотите использовать write/read concer majority то в этом случае арбитр не выход
yopp
в целом арбитр это крайняя мера, надежнее иметь третью ноду
yopp
проверить что ей хватает файловых дескрипторов
Andrey
подскажите, а mongodump может чекать и сохранять только изменения?
S
парни, вы схемы храните в папке models?
Aleksandr
+
Alex
Ребята подскажите есть поле типа array {tags: ['tagName']} и в некоторых документах tags: []. Реально ли построить индекс для такого поля, например когда захочу выбрать документы где tags не пустой.
Vova
Как-то так
Vova
Это если без aggregation, в котором уже есть что-то типа $isEmpty
Антон
Здравствуйте, возник вопрос по поводу быстроты чтения. Есть 7 полей, поиск может производится по любому не пустому множеству данных полей. Чтобы обеспечить быстрый поиск без специфики данных необходимо 64 индекса, чтобы каждый запрос попадал на префикс индекса. Получается слишком много индексов. Если учитывать специфику данных и использовать не префиксный поиск то планировщик не видит план (Например индекс {a: 1, b: 1, c: 1} рассчитываем что будем производить поиск по полям a, c)
Антон
есть способ чтобы искал быстро но не так много и идексов?
yopp
но там есть всякие подводные камни
yopp
но надо понимать что итоговый индекс по размеру будет больше данных
yopp
про: (Например индекс {a: 1, b: 1, c: 1} рассчитываем что будем производить поиск по полям a, c) compound индексы это способ сериализации значений в ключ индекса. в данном случае ключ индекса будет выглядеть как строка состоящяя последовательно из 3 значений ключей a, b и c. поиск по ключу индекса это поиск слева на право. как следствие эффективный поиск по a и c не возможен, так как середина ключа b не известна.
NCR
Товарищи, MongoDB - не реляционная субд?
yopp
да, монга не реляционная бд. в настоящий момент в монге нет реляционных гарантий
yopp
но с появлением транзакций, вы можете самостоятельно эти гарантии реализовать
Антон
https://docs.mongodb.com/manual/core/index-wildcard/#create-a-wildcard-index-on-all-fields
неопределенные индексы подходят если коллекция гетерогенная, в моем случае коллекция гомогенная и каждый документ структурирован следующим образом {field1: value, field2: value, field3: value и т. д.} , где value - поля определенного типа (некоторые примитивы mongo)
Антон
хотя некоторые field могут отсутствовать, но это не для неопределенного индекса
yopp
я вам предлагаю не руководствоваться непонятно откуда взятым утверждением, а проверить гипотезу что wildcard будет эффективнее в вашей задаче чем 64 индекса
yopp
ещё может помочь если вы расскажете о предметной области
Антон
покажите результаты на вашем датасете
строится через пару минут проверю, но судя по ограничениям в документации не должен сработать
Антон
ещё может помочь если вы расскажете о предметной области
есть коллекция в которой документ единичной вложенности в коллекцию поступают запросы следующего шаблона: db.collection.explain("executionStats").aggregate([{'$match': {'require_field': {'$exists': true}}}, <<< {'$match': {'date': {'$gte': ISODate("2018-06-01T13:52:01.935Z")}}}, {'$match': {'date': {'$lte': ISODate("2019-09-16T13:52:01.935Z")}}}, {'$match': {field_1: 1}}, >>> {'$sort': {'date': -1}}, {'$skip': 0}, {'$limit': 50}])
Антон
то что внутри <<< >>>> находится множество операций match по любому множеству из 7 полей
yopp
много документов?
yopp
match по дате всегда есть?
yopp
и как много таких запросов?
Антон
и как много таких запросов?
в смысле различных видов или нагрузка на бд?
yopp
нагрузка, qpd
Антон
запросов 30 в минуту
yopp
я правильно понимаю что там skip/limit в основном отличается?
yopp
т.е. это какие-то отчёты по различным измерениям?
Антон
я правильно понимаю что там skip/limit в основном отличается?
скорее они тоже изменяются в основном изменения по полям внутри <<< >>> в шаблоне
Andriy
всем привет, в базе есть запись типа такой { "_id" : ObjectId("5d94607394db53257d0f8d4d"), "url" : "https://www.instagram.com/433/", "description" : "Check out my Instagram profile with posts about sports!", "title" : "Do you like sports?", "paid_views" : 1000, "user_id" : "5d8e9951469c530de8f1faf127e737baac6fee751cd24", "image" : "", "approved" : true, "created_at" : 1570005107, "view_count" : 16828, "click_count" : 12, "user_view_count" : 2078, "user_click_count" : 7, "last_user_values_update" : 1570014002, "type" : "instagram", "admin" : false, "status" : "completed" }, мне нужно получить все записы которые approved = true и status $nin completed, stop. делаю такой запрос db.promote_ads.find({approved: true, status: {$nin : ["completed", "stop"]} }) и какое то время он работает корректно, но потом начаниет отдавать записи в которых статус completed или stop, кто то сталкивался с таким? заранее спасибо
Tonych
Коллеги, привет. Столкнулся с вот такой проблемой: не запускается mongos с опцией security.authorization: enable выдает: Unrecognized option: security.authorization Монго 4.2
Alexander
Всем привет! Скажите, а сколько в версии 4 Монги можно иметь участников replica set? - в 3.6 их было 50, но я краем уха слышал, что увеличили.