Daniil
Что есть «медленно»?
Илья
Что есть «медленно»?
Несколько секунд
Илья
3-5
Daniil
Для такого кол ва документов это чрезвычайно много даже без всяких индексов
Daniil
Монга в контейнере?
Daniil
И это время получается при выполнении запроса в монгошеле или в вашем приложении?
Илья
Монга в контейнере?
Нет, раньше все норм было, потом после того как он уперся в лимит для сорт операций стало медленно, сделал индекс на createdAt, в лимит памяти запрос теперь вписывается но все равно медленно работает, это в моем приложении которое на том же сервере
Daniil
А через монгошелл что получается?
Илья
А через монгошелл что получается?
А как там время посмотреть через терминал?
Daniil
А как там время посмотреть через терминал?
Ну на самом деле такой запрос должен выполняться за несколько миллисекунд если все нормально Просто на глаз можно определить тот же порядок (секунды) или все другой (миллисекунды)
Илья
В монгошелле около секунды
Daniil
Какая общая нагрузка на базу? На запись/чтение, сколько она занимает памяти, сколько доступно памяти на сервере, нет ли рядом прожорливых приложений, что с нагрузкой на сеть?
Serhii
Ребят, если БД: mongoDB, и я пользуюсь Django ORM создаю связи, как это обрабатывает mongo, кто-то может подсказать? Правильно ли я предполагаю что там "ручные ссылки создаются"
Daniil
Ребят, если БД: mongoDB, и я пользуюсь Django ORM создаю связи, как это обрабатывает mongo, кто-то может подсказать? Правильно ли я предполагаю что там "ручные ссылки создаются"
Ужасный какой то уже уровень абстракции получается Скорее всего там просто у документов из коллекции А, которые связаны с документами из коллекции Б есть поле, например, linkId, которое содержит в себе идентификаторы документов из коллекции Б
Marat
Привет всем. Я только по ноде начал, и есть вопрос к более опытным. Мне надо в базу добавить дефолтные данный, и вот как делаю: import mongoose from 'mongoose'; import USA_CITIES_FOR_SEED from '../_data/location/usa/cities/usa_cities_en_ru'; const {db} = mongoose.connection; export const up = async (next) => { try { const city = db.collection('cities'); await city.insertMany(USA_CITIES_FOR_SEED); } catch (e) { throw e; } next(); }; Все ли правильно делаю?
Daniil
Это можно сказать аналог FROM в сикле
Marat
Хорошо, спасибо за советы
Mike
Доброго времени суток!
Mike
Как найти значение в определенном документе через findOne()?
Daniil
Как найти значение в определенном документе через findOne()?
Опишите задачу поподробнее, пока не очень понятно
Daniil
Можно привести конкретный пример
Ilya
Добрый день. Необходимо хранить определенный набор данных на временном промежутке (час, сутки, неделя, месяц). Сбор данных сводится к икрементации поля (пример - количество просмотров, поле views икрементируется +1 при каждом просмотре пользователя, соответственно, необходимо иметь кол-во просмотров за последний час/сутки/неделю/месяц). Есть ли эффективные подходы к организации храненения подобных данных?
Maxim
Всем привет! Подскажите плиз можно ли как-то удалить объект так, чтоб он выпилился из родительского массива? Извините за нубский вопрос, но ситуация требует действий 🙂
Vladimir
что есть "родительский массив"?
Maxim
Например у меня есть таблица маркок машин, которые содержат модели машин, и если я удаляю модель авто, то хотелось бы, чтоб она удалилась в массиве моделей у марки.
Maxim
Марка и модели - это один документ?
Нет, разные, у марки есть модели - массив айди моделей
Daniil
Понял, тогда https://docs.mongodb.com/manual/reference/operator/update/pull/
Daniil
Два запроса будет, один на удаление документа-модели, второй на удаление идентификатора модели из документа-марки
Maxim
То есть все равно надо знать айди марки при удалении модели?
Daniil
Да, конечно
Maxim
Ага, понял, спасибо!
Anonymous
Евгений
есть какой-нибудь аналог findAnyUpdate, который будет работать, даже если документа нет т.е. если есть - обновить, если нет - создать
Евгений
Upsert?
да, оно, спасибо
Евгений
Upsert?
а для поддокумента есть что-нибудь подобное? в 2013, похоже, не было) https://stackoverflow.com/questions/14527980/can-you-specify-a-key-for-addtoset-in-mongo
Vladimir
а для поддокумента есть что-нибудь подобное? в 2013, похоже, не было) https://stackoverflow.com/questions/14527980/can-you-specify-a-key-for-addtoset-in-mongo
Ну мне такого, к сожалению не известно, разве что вместо списков использовать объекты/словари
Евгений
$addToSet? https://docs.mongodb.com/manual/reference/operator/update/addToSet
для простых типов да, для сложных там ключа нет
yopp
Afair оно сравнивает bson представление элементов, главное чтоб документы в массиве были полностью эквиваленты, включая порядок ключей
yopp
Но если есть сложная логика, то aggregation pipeline в update https://docs.mongodb.com/manual/reference/method/db.collection.update/#update-with-aggregation-pipeline
Adamets
Товарищи спасательная бригада помогите, что за чертовщина ,отключатся сервак хотя пару часов назад после подключения в се пахало
Adamets
нет
Daniil
тогда действительно проверьте внесен ли ваш ip в whitelist атласа
Adamets
в общем я делаю запросы с фронта на сервер и он мне выдает такую ошибку именно после запроса а запрос на фронте отдает 500
Adamets
а как занести айпишник в атласе
Daniil
вот в сообщении об ошибке есть ссылка на документацию, там подробно расписано как и что сделать
Daniil
если там у вас стоит доступ откуда угодно, то ошибка где то в другом месте
Artem
Можешь открыть для всех айпи и не морочится
Daniil
Можешь открыть для всех айпи и не морочится
лучше так не делать, если есть статический ip-адрес
Artem
Тоже верно, но это как решение
Adamets
все норм
Adamets
открыл для всех
Artem
Ruslan
Что означает: получить все записи с базы данных (с пагинацией)? То есть сделать типа как в SQL limit и offset?
Ruslan
Ruslan
Ruslan
Там просто букву пропустил
Ruslan
Это и есть пагинация, верно?
Daniyar
да
Daniyar
с клиента получаешь страницу
Daniyar
и даешь ему нужную страницу с n итемами
Daniyar
у тебя skip не правильный
Daniyar
сначала умножение потом вычитание
Daniyar
и вместо 1, pageSize
Ruslan
сначала умножение потом вычитание
Типа pageSize * currentPage - 1 то есть дужки убрать
Ruslan
Я такой пример на стековерфлов нашол
Ruslan
Ruslan
Это если скобки убрать
Ruslan
Daniyar
вот так верно