Sergey
Nick
вплоть до составного сложного объекта с вроде как единственным ограничением в 1кб
Olexandr
добрый вечер, функционал как реализовать количества просмотров поста?
Маrаt
даже никаких транзакций не нужно, $inc is an atomic operation within a single document.
Vladyslav
Всем привет, как обновить поля во вложенном массиве данными с других полей на том же уровне ? Нужно поля estimatedStartDate, estimatedDueDate обновить данными с полей startDate, endDate Делаю такой запрос: db.getCollection('cards').updateMany({ _id: ObjectId("5f4efc12c18a560027ab3646"), 'lineItems.jobs.status': 'Done', 'lineItems.jobs.estimatedStartDate': { $exists: false }, 'lineItems.jobs.estimatedDueDate': { $exists: false } }, { $set: { 'lineItems.$[].jobs.$[j].estimatedStartDate': '$startDate', // тут хз как забрать контекст 'lineItems.$[].jobs.$[j].estimatedDueDate': '$dueDate', // и тут } }, { arrayFilters: [ { 'j.status': 'Done', 'j.estimatedStartDate': { $exists: false }, 'j.estimatedDueDate': { $exists: false } } ], multi: true }) Схема: { ... status: String, lineItems: [{ jobs: [{ startDate: Date, endDate: Date, }] }] ... }
Vladislav
подскажите что за ошибка я много гуглил но так и не смог решить проблему
Vladislav
Nick
SuleYman
Всем привет, в докере пытаюсь импортировать DB через команду mongorestore --db ./ /dumps/mongodumps/parser_ad/avito_objects/ Летит ошибка Failed: invalid db name: illegal character '/' found in db name './' типо неправильно директорию указываю, хотя я нахожусь в текущей куда на накатит, где я так жестко туплю?
SuleYman
По-моему я понял)
SuleYman
Что значить restore и import, отличие ?
SuleYman
Что значить restore и import, отличие ?
Типо restore восcтанавливает dump, import коллекцию?
yopp
Что значить restore и import, отличие ?
restore работает с двоичным форматом bson dump и восстанавливает данные как есть, а import с текстовыми форматами и возможны проблемы с преобразованием типов
yopp
mongodump -> mongorestore mongoexport -> mongoimport
SuleYman
SuleYman
+ Сспасибо в капилку
Схемы это формальное представление как будут представлена структура данных? или как то жестко Mongo это декларирует?
yopp
единственное жесткое требование – уникальное поле _id
yopp
в самой монге нет схемы
SuleYman
в самой монге нет схемы
если нет, а как клиент определил? по каким признакам
yopp
Оно есть и в index`ах
да, по умолчанию есть unique index на поле _id. его нельзя ни удалить, ни изменить
yopp
монга отдаёт bson и дальше клиент на уровне бизнес-логики решает что с ним делать
yopp
это вне зоны отвественности монги, за исключением валидаторов
SuleYman
это вне зоны отвественности монги, за исключением валидаторов
"за исключением валидаторов", сделаю вид что понял)
SuleYman
restore работает с двоичным форматом bson dump и восстанавливает данные как есть, а import с текстовыми форматами и возможны проблемы с преобразованием типов
"с текстовыми форматами и возможны проблемы с преобразованием типов" - формат json и все как мне известно.
Danil
Всем привет! Подскажите, я развернул на сервере базу данных mongodb возможно ли как-то к ней подклчиться, при условии что я знаю ip, что-то типа mongoose.connect('mongodb://192.168.1.252/ test) Или подскажите как загуглить правильно?
Vladislav
Добрый день! Вопрос следующий Можно ли при обработке post запроса создать новый bson, но при этом обновить другой? то есть при пост запросе совершить сразу две махинации с базой данных
Viktor
Всем привет. Подскажите пожалуйста у монги нет проблем с кириллицей? Делаем интеграцию с гос структурами и мапим xml в json. Все поля соответственно на русском . Это не вызовет проблем на стороне монги ?
Viktor
Нет. Там с collation и sort lang главное не забудьте правильно настроить, если text search использовать планируете.
Спасибо за ответ. С монгой раньше не работал , по этому немного опасаюсь. Почитаю как это всё настроить
Антон
подскажите пожалуйста, почему вот это работает из ноды: db.collection('control').find({counter: id}).toArray((err, docs) => { console.log(err, docs); }) а это db.collection('control').updateOne({counter: id}, {$set: {status: 0}}, (err, result) => { console.log(err, result); }) не работает, а вылетает с ошибкой MongoServerSelectionError: connection timed out при этот с кластером монги все ок, оно работает успешно из других приложений на пхп
Антон
и в ошибке еще reason: TopologyDescription { type: 'ReplicaSetNoPrimary' хотя с primary все ок и он доступен
Антон
нашел. у мастера закрыт порт 27017 извне. хотя он закрыт у всех серверов кластера... как оно тогда select-ы может делать, и insert-ы нет? это нормально?
Александр
ну читать с реплики, но не писать в неё вполне логично
Александр
видимо вы всё же не в мастер ходите
Александр
ну и конфиги стоит проверить, стандартные порты выставлять в интернет вообще не очень идея
Антон
стандартный порт, но закрыто из вне для всех. фишка в том, что я сейчас через wifi в кафе и этот ip точно не добавлял в разрешенные на других нодах) при этом стоит readPreference=primaryPreferred
Антон
в общем крайне странно.
Антон
а подскажите еще момент. мне надо этот скрипт запускать раз в минуту. по нормальному, это сделать через setInterval или по cron запускать раз в минуту процесс ?
Roman
Всем привет. У меня такой вопрос. Получаю из базы объект такого вида: { breads: [ {name: 'name_b_1', position: 2}, {name: 'name_b_2', position: 1}, {name: 'name_b_3', position: 3} ], vegetables: [ {name: 'name_v_1', position: 2}, {name: 'name_v_2', position: 1}, {name: 'name_v_3', position: 3} ] } Получаю я его запросом: Model.findOne({id: _id}) Вопрос: Как сразу в запросе отсортировать элементы в массивах breads и vegetables по полю position?
Roman
findOne({}).sort({ position: 1 })
ну, это если бы position лежало на уровне breads и vigitablse, а мне нужно отсортиролвать именно элементы массивов breads и vigitablse
Roman
если элементов в массиве не много, дешевле сортировать на клиенте
ну, сейчас так и сделано, но выяснить очень хочется. Интересно, как вообще работать с подобным запросто, ведь, кроме сортировки там же есть можно часть данных не выводить на клиент, если, например какое-то из полей помечено, как неактивное
yopp
сортировать вложенные документы можно через агрегацию, но это потребует $unwond, $sort, $group, что дорого
yopp
фильтровать так: https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
Mike
любая же сортировка и фильтр будет выгоднее на клиенте?
Roman
любая же сортировка и фильтр будет выгоднее на клиенте?
в моем случае данные помеченные, как неактивные вообще не должны дойти до клиента
cobrascript
нет
Какие сортировки не выгодны на клиенте?
Mike
что сортировать на бекенде, а что лучше оставить на клиента
Kenan
Какие сортировки не выгодны на клиенте?
Сортировка больших данных. Ну и на сервере можно закэшить результат одних и тех же сортировок
cobrascript
Сортировка больших данных. Ну и на сервере можно закэшить результат одних и тех же сортировок
Хорошо. Если колличество запросов к базе будет наращиваться в геометрической прогрессии, сервер выдержит, не упадет с такой сортировкой? К примеру, случилось что-то, и 100 тысяч пользователей ломанулись на сайтик, одномоментно)
Roman
фильтровать так: https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
выдает только первый документ, как вывести все, удовдлетворяющие условию?)
Roman
и после $elemMatch почему-то не работает .populate()
cobrascript
Тут не скажу, с хайлоадом не было опыта
У нас недавно землетрясение было, местные сайты, сделанные на django, mysql, обычных cms (php) - рухнули. Не думаю, что там зашло больше 100 тысяч одномоментно,). На много меньше было, но все рухнуло... Даже такое не выдерживается, не говоря о сортировках...
Viktar
Для базы сортировка тяжёлая операция, поэтому по возможности надо их выносить в код.
Anton
Ребзя а монга держит индексы в озу на убунте?
✙ Nikita
Всем привет. Подскажите пожалуйста, монга при запуске дает предупреждение что файловая система не XFS, насколько это критично/важно?
Vadim
{ max: 5, array: ['а', 'б', 'в'], } Как составить запрос find() чтобы выдало только те документы, в которых размер массива array меньше чем значение 'max' в документе?
Nikolay
Всем привет, не у кого проблем нет с конектом базы данных? Перестало конектиться, ошибка по истечению таймаута, на сайте в аккаунт тоже не пускает
Nikolay
Вот так со всех устройств, интернет есть
✙ Nikita
Вот так со всех устройств, интернет есть
https://downforeveryoneorjustme.com/cloud.mongodb.com
Nikolay
Вот так со всех устройств, интернет есть
Странно, теперь я не могу зайти просто так, только через vpn заходит, у всех так или только у меня?
Anonymous
Всем привет! Нашёл старый бэкап, нужно восстановить из него юзеров, бэкап почему-то в таком формате, ест ьли варки перегнать bson в json?
Anonymous
хм, думаю тогда установлю монгу и сделаю mongorestore
Александр
Какие сортировки не выгодны на клиенте?
Сортировки документов в запросе, когда можно построить соответствующий индекс и получать их сразу в нужном порядке