Daniil
Что есть «медленно»?
Илья
Илья
3-5
Daniil
Для такого кол ва документов это чрезвычайно много даже без всяких индексов
Daniil
Монга в контейнере?
Daniil
И это время получается при выполнении запроса в монгошеле или в вашем приложении?
Илья
Монга в контейнере?
Нет, раньше все норм было, потом после того как он уперся в лимит для сорт операций стало медленно, сделал индекс на createdAt, в лимит памяти запрос теперь вписывается но все равно медленно работает, это в моем приложении которое на том же сервере
Daniil
А через монгошелл что получается?
Daniil
А как там время посмотреть через терминал?
Ну на самом деле такой запрос должен выполняться за несколько миллисекунд если все нормально
Просто на глаз можно определить тот же порядок (секунды) или все другой (миллисекунды)
Илья
В монгошелле около секунды
Daniil
Какая общая нагрузка на базу? На запись/чтение, сколько она занимает памяти, сколько доступно памяти на сервере, нет ли рядом прожорливых приложений, что с нагрузкой на сеть?
Serhii
Ребят, если БД: mongoDB, и я пользуюсь Django ORM создаю связи, как это обрабатывает mongo, кто-то может подсказать?
Правильно ли я предполагаю что там "ручные ссылки создаются"
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
Daniil
Это можно сказать аналог FROM в сикле
Marat
Хорошо, спасибо за советы
Mike
Доброго времени суток!
Mike
Как найти значение в определенном документе через findOne()?
Daniil
Daniil
Можно привести конкретный пример
Ilya
Добрый день. Необходимо хранить определенный набор данных на временном промежутке (час, сутки, неделя, месяц). Сбор данных сводится к икрементации поля (пример - количество просмотров, поле views икрементируется +1 при каждом просмотре пользователя, соответственно, необходимо иметь кол-во просмотров за последний час/сутки/неделю/месяц). Есть ли эффективные подходы к организации храненения подобных данных?
Daniil
Maxim
Всем привет!
Подскажите плиз можно ли как-то удалить объект так, чтоб он выпилился из родительского массива?
Извините за нубский вопрос, но ситуация требует действий 🙂
Vladimir
что есть "родительский массив"?
Maxim
Например у меня есть таблица маркок машин, которые содержат модели машин, и если я удаляю модель авто, то хотелось бы, чтоб она удалилась в массиве моделей у марки.
Daniil
Daniil
Понял, тогда https://docs.mongodb.com/manual/reference/operator/update/pull/
Daniil
Два запроса будет, один на удаление документа-модели, второй на удаление идентификатора модели из документа-марки
Maxim
То есть все равно надо знать айди марки при удалении модели?
Daniil
Да, конечно
Maxim
Ага, понял, спасибо!
Anonymous
Евгений
есть какой-нибудь аналог findAnyUpdate, который будет работать, даже если документа нет
т.е. если есть - обновить, если нет - создать
Vladimir
Евгений
Евгений
Upsert?
а для поддокумента есть что-нибудь подобное?
в 2013, похоже, не было)
https://stackoverflow.com/questions/14527980/can-you-specify-a-key-for-addtoset-in-mongo
Vladimir
Евгений
yopp
Евгений
yopp
Afair оно сравнивает bson представление элементов, главное чтоб документы в массиве были полностью эквиваленты, включая порядок ключей
yopp
Но если есть сложная логика, то aggregation pipeline в update
https://docs.mongodb.com/manual/reference/method/db.collection.update/#update-with-aggregation-pipeline
Adamets
Товарищи
спасательная бригада помогите, что за чертовщина ,отключатся сервак хотя пару часов назад после подключения в се пахало
Daniil
Adamets
нет
Daniil
тогда действительно проверьте внесен ли ваш ip в whitelist атласа
Adamets
в общем я делаю запросы с фронта на сервер и он мне выдает такую ошибку именно после запроса а запрос на фронте отдает 500
Adamets
а как занести айпишник в атласе
Daniil
вот в сообщении об ошибке есть ссылка на документацию, там подробно расписано как и что сделать
Daniil
если там у вас стоит доступ откуда угодно, то ошибка где то в другом месте
Artem
Можешь открыть для всех айпи и не морочится
Artem
Тоже верно, но это как решение
Artem
Adamets
все норм
Adamets
открыл для всех
Artem
Ruslan
Что означает: получить все записи с базы данных (с пагинацией)?
То есть сделать типа как в SQL limit и offset?
Daniyar
Ruslan
Ruslan
Ruslan
Ruslan
Там просто букву пропустил
Ruslan
Это и есть пагинация, верно?
Daniyar
да
Daniyar
с клиента получаешь страницу
Daniyar
и даешь ему нужную страницу с n итемами
Daniyar
у тебя skip не правильный
Daniyar
сначала умножение потом вычитание
Daniyar
и вместо 1, pageSize
Ruslan
Я такой пример на стековерфлов нашол
Ruslan
Ruslan
Это если скобки убрать
Ruslan
Ruslan
Daniyar