yopp
~418 раз
и это без учёта компрессии :)
yopp
1 678 байт
yopp
ну тогда ещё лучше будет :)
Anonymous
да
Anonymous
Anonymous
добрый день, подскажите пожалуйста, использую коллекцию с индексом TTL, после TTL документ удаляется, однако что-то остается, как это понять ?)
Anonymous
если сделать экспорт - пустой массив
Collection Stats
Documents 62
но документов нет
yopp
Anonymous
yopp
Не использовать их
yopp
Это неточная метрика
yopp
Она показывает приблизительное число документов. Оно может совпадать с реальным числом, но это не гарантируется
yopp
Если вы хотите точно посчитать документы, используйте count
Anonymous
вот я count и использую, мне точное число не нужно, нужно грубо понимать, есть ли допустим не истекшие сессии, а он мне возвращает 62, а в коллекции документов(сессий) нет
yopp
Какая у вас версия монги?
yopp
Count вы где используете?
Anonymous
4.2.5
Anonymous
в логике приложения, python
yopp
Попробуйте вместо count использовать AF + $count
yopp
Возможно у вас драйвер вместо подсчета документов использует метаданные коллекции
Anonymous
спасибо, попробую
yopp
В новых драйверах по хорошему должно быть два метода countDocuments и estimatedDocuementsCount
yopp
Первый дергает агрегацию, второй читает метаданные
Anonymous
уже увидел, что count deprecated в пользу countDocuments, но драйвер не поддерживает countDocuments увы, так что попробую AF, спасибо
yopp
👌
Sam
Wishlist.findOne().populate({path:'user',match: {_id:req.body.user_id}}).populate({path:'products',select:'name price quantity'})
Sam
Sam
С этим запросом я вывожу это, но мне нужно чтоб я мог удалить один из продуктов, и так update базе как можно ?
Anonymous
А в чем бонус bulkWrite ?
Anonymous
Stepan
Anonymous
создать 10 операций на апдейт:
этому документу поле А, этому - поле Б
в чем перформанс будет, если все равно нужно найти конкретный документ и обновить поле, в один запрос это не сложить
yopp
Stepan
А в том, что каждый запрос на апдейт это сетевое взаимодействие - послать запрос, получить результат. Для 10 операций перфоманса не будет, а вот для 100к уже ощутимо
Anonymous
а, про сеть не подумал, спасибо, выручаете уже в который раз
спасибо!
yopp
это может иметь какой-то эффект когда у вас большая частота запросов и сетевые задержки начинают быть заметны на фоне времени необходимого на выполнения запроса
yopp
yopp
если время запроса примерно одного порядка с сетевыми задержками, там есть какой-то смысл
yopp
это сетевая оптимизация
yopp
т.е. приемущество будет зависеть исключительно от RTT
Stepan
Ну 300к запросов по сети, даже если они по 1мс, вроде как не кисло выходит)
Anonymous
Anonymous
но это не точно
yopp
Stepan
yopp
«мало» это не абсолютная величина
yopp
если запрос по секунде, то это погрешность измерения
Stepan
Maka
Привет всем, подскажите пожалуйста, у меня есть коллекция "комментарии" в ней хранятся документы типа: {_id, text, answers:[]}, где answers: массив id-шников комментариев-ответов, при этом все документы этих ответов лежат на том же уровне что и обычные комментарии, как можно получать вместо массива id-шников сразу массив объектов комментариев?
Maka
Maka
можно ли в mongodb при запросе подменять id объекта на сам объект, чтобы возвращалось что-то вроде такого?
Maka
я знаю что можно просто хранить комментарии вложенно(хоть это и усложнит код), но с авторами так не получится, их имена тоже хотелось бы линковать с комментариями через id-шки
Maka
я нашел решение, спасибо
Anonymous
о всего доллар
Anonymous
коллеги, подскажите плиз более продвинутый способ бекапа без остановки, кроме дампа. если есть
Vladimir
fsyncLock + rsync (хотя это не совсем без остановки)
или снэпшоты файловой системы
Anonymous
и бесплатных)
Anonymous
спасибо
Vladimir
https://github.com/wal-g/wal-g/ - тут вот потихоньку пилится более лучшая утилита для бэкапов, в том числе монги
Anonymous
yopp
yopp
с журналом и wt
yopp
при условии что dbPath на одном разделе
Andrey
ребят, а find({_id: {$in: ids}}) производительней чем Promise.all(ids.map(id => findOne({_id: id}))) ?
Anonymous
Доброго времени суток, подскажите пожалуйста, это правильный подход для mongodb?)
Anonymous
делать просто поле id, или это нарушает философию монги?)
Daniil
Daniil
Anton
Я понимаю, что вопрос глупый, но может ли между $or и $and кто-то быть быстрее?
Slava
Доброго времени суток! Нужна помощь, пытаюсь с ноды подключиться к монго - коннекшн проходит (использовал урлу вида “mongodb://host:port/database”), но при записи выдает ошибку монго, что нужна аутентификация - начал авторизованно подключаться (mongodb://login:password@host:port/database), но нода перестала вообще подключаться к монго, пишет, что аутентификация не пройдена, хотя все верно.
Стартую монго через docker-compose:
mongo:
restart: always
container_name: musician-database
image: mongo:latest
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password
volumes:
- ./data/:/data/db
Чтобы решить проблему, пробовал добавить следующий volume к образу (совет с гитлаба):
- ./data/mongo/001_users.js:/docker-entrypoint-initdb.d/001_users.js:ro
В нем создовал юзера с аксессом на readWrite и аналогичными логин-пароль.
Подключаюсь через mongoose, делаю это так:
mongoose
.connect(
`mongodb://admin:password@${process.env.MONGO_HOST}:${process.env.MONGO_PORT}/${process.env.MONGO_DATABASE}`,
{
useNewUrlParser: true,
useUnifiedTopology: true,
bufferMaxEntries: 0,
}
)
.catch(err => {
isError = true;
console.error(`Error connecting to mongodb, ${err}`);
});
Без аутентификации подключение устанавливалось успешно (понимал я это из then вернувшего промиса от mongoose), с аутентификацией then в промисе не отрабатывает, а вот error’ка с радостью
Помогите, пожалуйста, опытные люди, сам не знаю как дальше. Заранее спасибо!
Sardor
Всем привет! Православных с Пасхой:)
Имевшие дело с LifeRay, подскажите, пожалуйста, возможно ли его совместить с Монгой? Если да, как это сделать? Можете статью или какой-нибудь материал подкинуть?
На всех мануалах юзается mysql, а я бы хотел Монгу подцепить)