Anonymous
Доброго времени суток, Возникла нужна сортировки по виртуальному полю. Есть ли какие либо решения?Ибо из коробки не поддерживает Сам виртуал выглядит так productSchema.virtual('stock').get(function() { var totalAmount = 0; this.procurement_info.forEach((stock, index) => { totalAmount += this.procurement_info[index].stock }); return totalAmount });
Viktor
более быстрый способ: завести невиртуальное поле и обновлять его из приложения, при этом построить по нему индекс
A
Привет всем, такой вопрос, если в монге проверка за последний запушенный элемент в записи Допустим есть таблица с кучей записей аля {'_id':'4123946108237648123' 'dots' : [ {'d':'random Date' 'total_cost': '123123'}, {'d':'random Date' 'total_cost': '555345345'}, {'d':'random Date' 'total_cost': '5345345'} ]} и в массив дотс каждые 5 минут пушится новая точка. И вопрос заключается в следующем, есть ли тег, которая будет смотреть последнюю точку дотс и ту точку, которая пушится и если они одинаковые по значению total_cost, не пушить эту точку
️lefrotite
Можно ли выполнить поиск по спискам, чтобы вернуло документы, содержащее хотя бы один из трёх элементов?
Serhii
как правильно подключиться к mongodb с digital ocean?
Eshently
как правильно подключиться к mongodb с digital ocean?
а в чем пробл то? Разницы та не какой
Anonymous
Объясните плиз, когда секондари выходит из строя, в каком случае перевыборы?
Max
главное, чтобы был кворум. если у вас три монги (в тч и арбитр), то две оставшиеся договрятся друг с другом. если в репликасете только два хоста, и один из них выйдет из строя, то и primary станет secondary.
Anonymous
смотрите, было 3 ноды - 1P , 2S. оба S по очереди вышли из строя,
Anonymous
при этом P стал через некое время S
Anonymous
как так то
Nick
смотрите, было 3 ноды - 1P , 2S. оба S по очереди вышли из строя,
оба вышли из строя - кворума нет - кластер развалился
Anonymous
поясните, не понял
Anonymous
праймари не может работать без секондарей?
Nick
эм, ща начал писать объяснение и понял что чтото могу напутать. в общем случае да, после того как их осталось два и они произвели выборы, после которых еще одна нода вывалилась, то один не может опредлеть он был главным или секондари, т.к. есть проблема сплит брейна
Nick
и одна нода бывшая в кластере всегда будет считать себя ведомой до следующих выборов когда соберется кворум нод, либо пока ей вручную не скажут что она праймари
Anonymous
в этом есть смысл
Nick
но лучше найти доку, я могу уже путаться об особенностях монги
Nick
в этом есть смысл
и еще насколько я помню при создании репликасета указывается список нод в нее входящих, вот как минимум половина +1 должно быть живо чтобы все работало
Anonymous
я понимаю, но вот ты праймари - ты лицо, а падают секондари, тебе ли не все равно?
Anonymous
ты блин один остался, работай
Nick
нет
Nick
в кластерах все не так
Anonymous
сфига тебе становиться ведомым если ты был праймари..
Anonymous
лучше уж пусть база лежит вся
Nick
смотри, есть такая пробелма как сплит брейн, т.к. когда у тебя разрывается связь между частями кластера. предположим у тебя две ноды в кластере мастер и слейв. между ними пошел лаг. каждая из нод начинает думать что осталась только она. и они сами себя провозглашают мастерами, чуешь проблему?
Anonymous
все, понял
Anonymous
а как грамотно сказать реплике, что мне нужно отсоединить временно 2 секондари, чтобы праймари пока поработал один
Nick
я таких операций на монге не проводил, поэтому здесь лучше подождать еще когото либо в доки лезть. в общем случае тебе нужно перенастроить репликасет убрав оттуда слейвы
Nick
и это вроде как можно на горячую без остановок делать
Max
если у вас так стоит вопрос, то надо понять, как долго вы хотите/планируете жить без slave-ов. если неопределенно долго, то правильнее будет разломать replicaset и оставить монгу как standalone. когда решите вернуть репликасет - соответственно переключите это все обратно. Вообще же, для рабочей реплики в минимальном режиме вам нужен мастер + арбитр, который можно поднять на этом же хосте. то есть: - в текущий репликасет добавляете арбитр. Следите за тем, чтобы он гарантированно был доступен с мастера. - убираете ненужные хосты из репликасета до тех пор, пока там останутся мастер, арбитр. этого будет достаточно, чтобы мастер работал в нужном вам режиме.
Anonymous
У меня был арбитр, я его отключил чтобы не было четногл числа
𝒦𝒶𝓁𝒶𝓎⛩
Добрый день! Тут ведется помощь начинающим программистам монго?
𝒦𝒶𝓁𝒶𝓎⛩
не могу создлать пользователя
Vasiliy
Всем привет! Выручайте) Есть json типа {name: "test", fielstList: [configs: {display: true}]} Как мне достучаться к display? Я пробовал разные варианты, но не пойму почему не работает db.cardView.find({"$and":[{"fieldList": {"$elemMatch": {"configs": {"display": true}}}}]})
Vasiliy
Я понимаю, что mongo ищет судя по всему только в первой вложенности, т.к. пример ниже работает db.cardView.find({"$and":[{"fieldList": {"$elemMatch": {"configs": {"$exists": true}}}}]})
Vasiliy
Но как мне достучаться до display: true, который внутри "configs"?
Vasiliy
Я был уверен, что вчера ночью пробовал так уже, но не суть. Это заработало. мне подходит. Спасибо)
Maksim
Да не за что.😊Приятно начать рабочий день с плюсика в карму, ахах.
Vasiliy
Да, хороший плюсик, я несколько часов точно потратил на это(((
A
Здравствуйте,мужики. Кто подскажет,где полистать,чтобы понять,как реальный сайт на хостинге подключить к монго?а то пока видел про соединение на локальном сервере рассказывают везде
SvPupok
чет не понял вопроса. у тебя есть web приложение которое крутится на хостинге, и тебе надо связать его с БД?
A
чет не понял вопроса. у тебя есть web приложение которое крутится на хостинге, и тебе надо связать его с БД?
Есть сайт,на php.я изучаю js и хотел бы добавить форму на сайт,прикрутив js,nodejs и mongo.но localhost меня же не устроит.Мне как-то надо зарегиться где-то,получить там место и вместо localhost прописать какую-то ссылку?вот интересна данная информация
SvPupok
например можно арендовать vps установить туда mongo и развлекаться. Можно воспользоваться услугами Mongo Atlas
SvPupok
https://hostadvice.com/lp/hosting-services/mongodb/?creative=197045647374&targetid=kwd-299170108703&matchtype=e&device=c&campaignid=837723732&adgroupid=45696363514&feeditemid=&loc_physical_ms=1011956&loc_interest_ms=&network=g&devicemodel=&placement=&keyword=mongodb%20hosting&target=&aceid=&adposition=1t2&gclid=CjwKCAjwlcXXBRBhEiwApfHGTcfOFqnwkoyBUqK2fUzRdCxDuw9-7EOje7i6E2ejQdvWnDSAP3CsVhoC4awQAvD_BwE
Анатолий
могу дать ссылку в привате =) на digitalocean
SvPupok
выбор огромен
A
например можно арендовать vps установить туда mongo и развлекаться. Можно воспользоваться услугами Mongo Atlas
А если у меня хостинг есть,что мне у них спросить,чтобы они сразу поняли в чем дело и что от них требуется?
SvPupok
А если у меня хостинг есть,что мне у них спросить,чтобы они сразу поняли в чем дело и что от них требуется?
ну, я так думаю, что обычный хостинг тут не прокатит, хотя хостеры предоставляют услуги в настройке и сопровождении БД
A
например можно арендовать vps установить туда mongo и развлекаться. Можно воспользоваться услугами Mongo Atlas
Получается,что если на моем хостинге есть vps,то есть шансы подружиться с ним,правильно понимаю?
SvPupok
vps - это просто аренда виртуального сервера, т.е. тебе дают вирткальную машину, и заходы на нее, а дальше ты сам делаешь что хочешь.
Anonymous
Вопрос: хочу обновиться с 3.2 до 3.4 в инструкции сказано, что сначала обновить конфиг сервера (для шардед кластера)
Anonymous
но у меня конфиг сервер и реплика находится на одном сервере
SvPupok
и в чем проблема?
Anonymous
то, что я подменяя бинарники для конфиг сервера, подмениваю и для реплики.
yopp
то, что я подменяя бинарники для конфиг сервера, подмениваю и для реплики.
Именно по этой причине не стоит на одном сервере размещать больше одной роли mongodb
yopp
Теперь у вас есть два варианта: поставить 3.4 параллельно с 3.2 в /opt например или в /usr/local, и обновить init/systemd таким образом, чтоб конфиг сервера использовали этот путь.
yopp
Второй вариант: обновить пакет, но не перезапускать реплику.
yopp
Либо остановить реплику и запустись её уже самой последней
Noname
Господа, столкнулся с такой проблемой. У меня есть поле transactions , в котором ведётся по сути лог изменения баланса пользователя. Переодически происходит такая вещь. Что создаётся двойные запросы. То есть допустим user.balance не может быть меньше 0 Приходит две транзакции на отнятие 100,это добавляется к полю sum. Пример: две транзакции по 100, в поле sum тоже 100. Bроле и блокировка к документу на запись есть, но как это вообще происходит и как пофиксить?
yopp
Точнее, если вы ограничены одним документом, вы можете использовать оптимистичную блокировку
yopp
Если вы уже используете оптимистичную блокировку, то нужно больше вводных
Noname
Попробую реализовать
Alexander
Здравствуйте. У меня в mongoose есть массив. vote: [ { "id": 111111, "action": "like" }, { "id": 222222, "action": "dislike" } ] Как мне обновить конкретный элемент массива? К примеру мне нужно заменить action у id: 222222 на like. Кучу всего перерыл, не работает. Часто натыкаюсь на такой пример, но что-то идёт не так и вообще не уверен как это работать должно. Post.update({ 'vote.id': 222222 }, { '$set': { 'vote.$.action': "dislike", } }) Помогите пожалуйста с этой штукой.
Anonymous
db.createCollection is not a function. Я что не так сделал ?
Anonymous
show dbs , use <db name>
Anonymous
потом db.createCollection...
Anonymous
Anonymous
Запускаю другой модуль такой же mongo.js, запускается. А этот ругается на db...
Nikolay
есть кто шарит mongodb+ c#