Alexey
не важно
Гена
Мне кажется нашли ошибку)
Гена
mongos --keyFile /opt/keyfile.txt --configdb config-replica/[conf1],[conf2],[conf3] --bind_ip localhost,[ip] --port 27017 --fork --logpath /val/log/mongo-router.log
Alexey
Alexey
Ну я дебил)
Alexey
Беды с башкой
Alexey
Все. Forked
Alexey
Ура
Гена
Но опять же 1. Создать конфиг файл 2. Создать systemd запуск сервисов 3. не запускать из-под root
Alexey
Спасибо большое, дружище))
Alexey
Но опять же 1. Создать конфиг файл 2. Создать systemd запуск сервисов 3. не запускать из-под root
Хорошо. Сделаю себе тикет и как синхронизация пройдет, запилю и тестовый ребут сделаю))
Гена
угу)
Anonymous
ребят подскажите, как мне сделать категории на монго?
Sergey
ребят подскажите, как мне сделать категории на монго?
Имеется в виду реляция между товаром и категорией?
Igor
всем привет, помогити удалить элемент из массива. Что делаю не так db.collection('q').findOneAndUpdate( { "uid": "2" }, { $pull: { "follower": { $elemMatch: { "name":"test1" } } } })
yopp
Нужно у конкретного id удалить
Id в фильтре указывается
yopp
$elemMatch нужен если у вас вложенный в массив документ с массивом
Muhammad
результат через раз возвращает, почему может быть так? Типа делаю запрос а там пусто и код ответа 200
Muhammad
мне нужно рандом объект брать у которого поле posted = true, но почему-то переодически aggregate возвращает пустой массив
Muhammad
хотя на самом деле объектов с posted = true полно
Muhammad
как это можно поправить?
Aleksandr
как это можно поправить?
Match и Sample поменяй местами
Kostiantyn
Ребят доброго времени суток, помогите только осваиваю Mongo есть объект а в нем массив: { stars: [ "Mel Brooks", "Clevon Little", "Harvey Korman", "Gene Wilder" ] } как в таком массиве делать поиск по Brooks например? чтобы не писать Mel Brooks? db.Films.find(stars: "Brooks") не находит благодарю за любую помощь
Aleksandr
stars:{ $regex: /brooks/i }
Kostiantyn
пробую, спасибо
Kostiantyn
Alexander, а если без регулярки? Я пробовал через оператор $text но я так понял он только для объектов? массивы не ищет?
Aleksandr
text работает только если есть Text Index
Aleksandr
без этого поиск подстроки только регексом
Kostiantyn
все настроил, работает БОЛЬШОЕ спасибо)
Anonymous
мужики вечер добрый подскажите $ db.test.find().limit(10).sort({ _id: -1 }) и $ db.test.aggregate([{ $match: {} }, { $limit: 10 }, { $sort: { _id: -1 } }]) Почему разные результаты выдает?
Anonymous
$ db.test.find().limit(10).sort({ _id: -1 }) - тут он мне выдал как будто я сделал первоначально sort и потом limit т.е. я получил 10 последних записей добавленных юзером
Anonymous
$ db.test.aggregate([{ $match: {} }, { $limit: 10 }, { $sort: { _id: -1 } }]) а вот здесь я получил уже первые результаты добавленные в базу, а не последние как в другом запросе
Anonymous
по логике они ведь одинаковые совершенно запросы в чем байда то? почему так происходит? я понимаю что пайплайн sort -> limit вернее чем limit -> sort, но в find работает limit -> sort и работает хорошо
Anonymous
Потому что лимит до сортировки стоит, а значит могут разные до получаться после лимита
все равно не совсем ясно здесь вернет запись за 8 марта 2020 года: $ db.test.find().limit(10).sort({ _id: -1 } а здесь вернет за 1 января 2020 года: $ db.test.aggregate([{ $match: {} }, { $limit: 10 }, { $sort: { _id: -1 } }]) в чем фишка то монги? логика одинаковая совершенно и там и там
Nick
Не одинаковая
Nick
Разные запросы, файнд и агрегация
Anonymous
Разные запросы, файнд и агрегация
$ db.test.find().limit(10).sort({ _id: -1 } как сделать также в агрегации?
Nick
Плюс не определен порядок до лимита
Nick
Зачем?
Nick
Вы должны сначала вставить сортировку а потом лимит в агрегации, а не наоборот
Anonymous
Зачем?
скажем мне хочется в выводе переименовать параметры переименовать не кодом как мне быть?
Anonymous
Вы должны сначала вставить сортировку а потом лимит в агрегации, а не наоборот
$ db.test.aggregate([{ $match: {} }, { $sort: { _id: -1 } }, { $limit: 10 }]) вот так, да?
Nick
Да
Anonymous
Да
а здесь в другом трабл у двух запросов разное время выполнения $ db.test.find().limit(10).sort({ _id: -1 } - здесь 2 секунды $ db.test.aggregate([{ $match: {} }, { $sort: { _id: -1 } }, { $limit: 10 }]) - здесь 30 секунд
Anonymous
В первом тоже сделайте сначала сорт
в моем мире пайплайн выборки последних записей - это сначало sort и потом limit увидел я в коде что есть такое $ db.test.find().limit(10).sort({ _id: -1 }) думаю такой, ну баг наверное у юзеров есть переписал на: $ db.test.aggregate([{ $match: {} }, { $sort: { _id: -1 } }, { $limit: 10 }]) полетели жалобы что все очень медленно я такой думаю раз у "find" было limit -> sort, сделаю так в агрегации $ db.test.aggregate([{ $match: {} }, { $limit: 10 }, { $sort: { _id: -1 } }]) и пошли жалобы что результаты не те совсем
Anonymous
вопрос на засыпку $ db.test.find().limit(10).sort({ _id: -1 }) и $ db.test.find().sort({ _id: -1 }).limit(10) выдача одинаковая, скорость разная почему я должен юзать пайплайн sort -> limit, если в "find" магия и все работает через limit -> sort нормально
Nick
Подозреваю, что у.вас есть индекс под файнд с сортировкой. Но в пайплайне индексы работают только на первый матч, который пустой и в результате идет проход по всем данным. Отсюда и разница времени.
Anonymous
Так в первом случае отсекается сразу 10 для поиска разве нет?
Anonymous
Так в первом случае отсекается сразу 10 для поиска разве нет?
в этом случае db.test.find().limit(10).sort({ _id: -1 }) получаю просто последние 10 записей т.е. то что мне нужно
Anonymous
я сам офигеваю если честно что происходит сейчас
Anonymous
И он работает быстрее?
Nick
По работе сорт и лимит вместе в шеле
Nick
Там сделана оптимизация, которая не делает полную сортировку всех доков. На агрегации видимо такого не прикрутили
Brunello
добрый день, как излечить ошибку shutting down with code:49 ось винда
Brunello
Denis
да
Проверь достаточно ли места на диске, работоспособность файловой системы локальной при помощи чекдиска
Denis
Там явно в логах на эту проблему отсылки
Denis
Ради теста я бы указал дата-директорию монги на каком-то 100% работающем диске
Denis
Возможно просто локальные данные монги повреждены
Brunello
в логах еще я вижу что было аварийное перегрузка виртуалки после чего он ссылается на лок файл
Brunello
и по логам vmware виртуалка перегружалась
Brunello
Возможно просто локальные данные монги повреждены
есть ли возможность рекавери или это не консистеное восстановление будет по итогу
Denis
в логах еще я вижу что было аварийное перегрузка виртуалки после чего он ссылается на лок файл
Вот в принципе ясно. Проверь файловую систему на ошибки. Иногда вендовый чекдиск помогает пофиксить проблему. Но тут как последняя надежда это бекапы
Denis
есть ли возможность рекавери или это не консистеное восстановление будет по итогу
С таким не сталкивался, но как по мне нужно быть готовым ко всему
Brunello
Ради теста я бы указал дата-директорию монги на каком-то 100% работающем диске
да судя по всему файлы базы находятся на диске где и сама система, поэтому наблюдается ио 100%
Denis
Ну вот там у этой FS есть свои приколы. Но с вендой уже сто лет не работал, поэтому сложно что-то подсказать.
Brunello
Ну вот там у этой FS есть свои приколы. Но с вендой уже сто лет не работал, поэтому сложно что-то подсказать.
аналогично) когда подвезли винду я такой чтоооО монго на винде и еще продакт