Sergey
Nick
вплоть до составного сложного объекта с вроде как единственным ограничением в 1кб
Olexandr
добрый вечер, функционал как реализовать количества просмотров поста?
Маrаt
Ма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, отличие ?
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
yopp
монга отдаёт bson и дальше клиент на уровне бизнес-логики решает что с ним делать
yopp
это вне зоны отвественности монги, за исключением валидаторов
SuleYman
SuleYman
Danil
Всем привет! Подскажите, я развернул на сервере базу данных mongodb возможно ли как-то к ней подклчиться, при условии что я знаю ip, что-то типа mongoose.connect('mongodb://192.168.1.252/ test)
Или подскажите как загуглить правильно?
SuleYman
Vladislav
Добрый день!
Вопрос следующий
Можно ли при обработке post запроса создать новый bson, но при этом обновить другой? то есть при пост запросе совершить сразу две махинации с базой данных
Viktor
Всем привет. Подскажите пожалуйста у монги нет проблем с кириллицей? Делаем интеграцию с гос структурами и мапим xml в json. Все поля соответственно на русском . Это не вызовет проблем на стороне монги ?
Andrew
Viktor
Антон
подскажите пожалуйста, почему вот это работает из ноды:
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-ы нет? это нормально?
Александр
ну читать с реплики, но не писать в неё вполне логично
Александр
видимо вы всё же не в мастер ходите
Nick
Александр
ну и конфиги стоит проверить, стандартные порты выставлять в интернет вообще не очень идея
Антон
стандартный порт, но закрыто из вне для всех. фишка в том, что я сейчас через 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?
Mike
Всем привет. У меня такой вопрос. Получаю из базы объект такого вида:
{
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?
findOne({}).sort({ position: 1 })
Roman
findOne({}).sort({ position: 1 })
ну, это если бы position лежало на уровне breads и vigitablse, а мне нужно отсортиролвать именно элементы массивов breads и vigitablse
Mike
yopp
Всем привет. У меня такой вопрос. Получаю из базы объект такого вида:
{
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?
если элементов в массиве не много, дешевле сортировать на клиенте
yopp
сортировать вложенные документы можно через агрегацию, но это потребует $unwond, $sort, $group, что дорого
yopp
фильтровать так: https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
Mike
любая же сортировка и фильтр будет выгоднее на клиенте?
Kenan
cobrascript
нет
Какие сортировки не выгодны на клиенте?
Mike
Mike
что сортировать на бекенде, а что лучше оставить на клиента
Kenan
Roman
Roman
и после $elemMatch почему-то не работает .populate()
cobrascript
Тут не скажу, с хайлоадом не было опыта
У нас недавно землетрясение было, местные сайты, сделанные на django, mysql, обычных cms (php) - рухнули. Не думаю, что там зашло больше 100 тысяч одномоментно,). На много меньше было, но все рухнуло... Даже такое не выдерживается, не говоря о сортировках...
Kenan
Viktar
Для базы сортировка тяжёлая операция, поэтому по возможности надо их выносить в код.
Mike
cobrascript
Anton
Ребзя а монга держит индексы в озу на убунте?
✙ Nikita
Всем привет. Подскажите пожалуйста, монга при запуске дает предупреждение что файловая система не XFS, насколько это критично/важно?
Vadim
{
max: 5,
array: ['а', 'б', 'в'],
}
Как составить запрос find() чтобы выдало только те документы, в которых размер массива array меньше чем значение 'max' в документе?
Nikolay
Всем привет, не у кого проблем нет с конектом базы данных? Перестало конектиться, ошибка по истечению таймаута, на сайте в аккаунт тоже не пускает
Nikolay
Вот так со всех устройств, интернет есть
Anonymous
Всем привет! Нашёл старый бэкап, нужно восстановить из него юзеров, бэкап почему-то в таком формате, ест ьли варки перегнать bson в json?
✙ Nikita
Anonymous
Anonymous
хм, думаю тогда установлю монгу и сделаю mongorestore