Anatoly
Easy Rider
Есть такой жизненный сценарий. Вот я например запускаю свой сайт, ну там бекенд в виде сервиса на линуксе (который общается в свою очередь с сервисом монги на том же сервере). И предположим, мне надо перезалить бекенд, я останавливаю сервис. Но что произойдет с транзакциями? они отменятся все получается?... бля, написал, и понял что так и будет
Easy Rider
то есть никаких проблем как бы нет, просто все критическое надо обернуть в транзакции
RapidCodeLab
Easy Rider
один хрен, начиная с какого-то момента сервер будет отключен
RapidCodeLab
Новые перестать принимать, очевидно же
Easy Rider
вопрос был как бы в том, что сделать для того чтобы база не перешла в несогласованное состояние. все же в этом отношении реляционная модель удачнее
RapidCodeLab
Хозяин барин
Easy Rider
но тут я просто понял, что для того чтобы она не перешла в несогласованное состояние, как раз транзакции и предназначены
Easy Rider
у меня уже 26 тысяч строк кода (это по мнению анализатора студии), поздно рыпаться, придется жить с монгой какое-то время
Easy Rider
но если бы я знал заранее какие мозговые штурмы придется устраивать чтобы внимательно вглядываться и думать как сохранить согласованность коллекций, я бы всерьез подумал о том чтобы подучить SQL
Alexandrr
Easy Rider
но транзакции решают эту проблему
Alexandrr
Easy Rider
Alexandrr
че за триггеры?
https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/
Easy Rider
у меня не такая
Easy Rider
я занимаюсь сразу всем - бекендом, фронтом, дизайном, юридическими вопросами,разработкой рекламной концепции и тд. тупо нет времени изучать что-то еще, увыф
Easy Rider
что такое pg
Easy Rider
что мда....
Easy Rider
в монго тоже есть транзакции
Easy Rider
монго + транзакции не катит?
Easy Rider
а какая принципиальная разница транзакций в монго и в pg? в монго они до сих пор не полноценные разве?
sp
Кто нибудь может помочь?)
sp
Как сделать так чтобы операции на 76 и 78 либо обе выполнились успешно, либо обе откатились в состояние до манипуляций? тобишь транзакцию не могу в монгузе
Nick
Nick
Easy Rider
Easy Rider
даже если сервер монги один
sp
Easy Rider
я хз, может где-нибудь в облаках она и так есть
Easy Rider
но на VDS мне пришлось сделать
Nick
точнее сказать для транзакций нужен oplog, а его включение сейчас делается через включение режима репликации
Makar
Всем привет. Как мне хранить большие данные?
agic
Aleksandr
Всем привет. Как мне хранить большие данные?
https://metanit.com/sql/postgresql/2.3.php#:~:text=text%3A%20%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%B4%D0%BB%D0%B8%D0%BD%D1%8B.
Aleksandr
text: представляет текст произвольной длины.
Makar
Всем спасибо, извиняюсь за такой глупый вопрос)
HR Center
@LSNV_Loki ответьте в лс
wisp
Вопрос про библиотеку MongoDB в NodeJS.
Использую официальную библиотеку от монго. Немного барахлит обычный .find(), ну или я чего-то не понимаю.
Дело в том, что при выборе некоторых необходимых значений из find выводится вообще всё, а не только то, что меня интересует.
const theReachest = await collections.find({}, { "balance": 1, "id": 1 }).sort({ "balance": -1 }).toArray();
Код, который должен возвращать только объект (массив) самых богатых людей.
Можно ли как-то сделать так, чтобы отправлялись только нужные мне данные?
yopp
Вероятно вам нужен limit чтоб ограничить число возвращаемых документов
https://www.mongodb.com/docs/drivers/node/current/fundamentals/crud/read-operations/limit/
-
wisp
мне нужны все документы как раз, нужно ограничить остальные выводимые данные вместе с balance и id
-
-
точно, спасибо
const theReachest = await collection.find({}, { projection: { balance: 1, id: 1 } }).sort({ balance: -1 }).toArray()
Tentura
Добрый вечер, подскажите пожалуйста как можно профилировать возникновение page faults? Есть несколько кластеров объем от 500 гб до 1,5ТБ, от 30 до 50 Гб RAM.
Судя по графикам мониторинга на нодах нет проблем с RAM, но page faults все равно возникают.
Alexandrr
Makar
Это можно как-то фиксануть?
Makar
Да
Makar
Есть какая-то дока?
Alexandrr
Alexandrr
Alexandrr
в чём вопрос тогда?
-
в чём вопрос тогда?
Он хочет понять, из-за чего появляется page faults т.к. по его словам оперативной памяти хватает
-
И как это исправить
Андрей
Всем привет!
подскажите плз, можно ли в агрегации в lookup взять определнный процент записей?
допустим у меня 100 пользователей и я хочу взять только 10% от них
Alexandrr
Nick
Thunder
Привет чат. Как сделать в mongosh что то подо бное, в документах есть
Language: 'uk-UA',
надо обновить коллекцию и установить первую часть от сплита значения текущего документа , что то типа этого
updateMany({query}, {$set: {F: spliited[0]}})
Nick
Thunder
апдейт с агргеацией и там задействовать $split
db.subscribers.updateMany({LanguageFirst: { $exists: true}}, [{$set:{LanguageFirst:{$split: ["$Language", "-"]}}}])
пишется весь сплиттед массив, не могу догнать как взять только первый элемент)
yopp
Nick
Thunder
Ян 🌙
Всем привет, помогите разобраться почему данные не обновляются...
Есть документ примерно такой
id: 1
resources [{id:1, number: 1}, {id: 1, type: 'inc', number: 1}, {id:2, type: 'inc', number: 1}]
Вот, и такой запрос
updateOne({id: 1, 'resources.type': 'inc', 'resources.id': 1}, {$inc: { 'resources.$.number':1 }})
Ян 🌙
updateOne({id: 1, 'resources.id': 1}, {$inc: { 'resources.$.number':1 }})
Если вот так, то результатом будет
id: 1
resources [{id:1, number: 2}, {id: 1, type: 'inc', number: 1}, {id:2, type: 'inc', number: 1}]
А вот как добраться до того объекта с типом, не понятно
Mashxurbek
updateOne({id: 1, 'resources.id': 1}, {$inc: { 'resources.$.number':1 }})
Если вот так, то результатом будет
id: 1
resources [{id:1, number: 2}, {id: 1, type: 'inc', number: 1}, {id:2, type: 'inc', number: 1}]
А вот как добраться до того объекта с типом, не понятно
В фильтре нужно указать
{id: 1, " resource.type ": {$exists: true, $ne: null}, " resource.id ": 1}
Ян 🌙
Ян 🌙
acknowledged: true,
modifiedCount: 0,
upsertedId: null,
upsertedCount: 0,
matchedCount: 0
Ян 🌙
updateOne({id: 1, 'resources.id': 2, 'resources.type': 'inc', 'resources.number': {$exists: true}}, {$inc: { 'resources.$.number':1 }})
Почему-то обновляет первый объект.. как оно вообще работает..