@MongoDBRussian

Страница 260 из 342
Сергей
15.06.2018
13:39:55
Привет) Подскажите плиз, как написать запрос в mongoose) Есть коллекция элементов users У юзера есть два поля counter_1 и counter_2, мне надо достать всех юзеров у которых counter_1 !== counter_2. Не могу сообразить как такое написать (

Nick
15.06.2018
13:41:33
$expr

Александр
15.06.2018
14:02:22
Ребят подскажите плс, есть коллекция документов, в каждом документе есть массив поддокументов, мне нужно сделать выборку последних значений в поддокументах

Google
Артем
15.06.2018
14:04:36
Ruslan
15.06.2018
14:08:46
Ащпе, шайтан машина будет

Жаль стримы только через репликасеты

(я не про 4.0)

Артем
15.06.2018
14:10:40
Ащпе, шайтан машина будет
А потом и типизированные документы подъедут)))

Ну а потом сам знаешь) MoracleDb будет))

Сергей
15.06.2018
14:14:50
$expr
Спасибо, не знал про этот оператор)

Ruslan
15.06.2018
15:54:08
Wtf? :)

yopp
15.06.2018
17:11:38
https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb

Artem
15.06.2018
17:13:25
поддержка транзакционности на уровне репликасета это уже очень круто.

Nikita
16.06.2018
09:32:32
привет всем!, использую mongoose, как в нем реализовать проверку на существующию модель если есть то обновить если нет то сохранить (сильно не пинайте ?)

Google
Andruha
16.06.2018
09:33:48
Конкретнее задачу опиши

У меня в одной модели должна быть при любом раскладе только одна запись всегда, тут проверяю через count === 1

Nikita
16.06.2018
09:44:42
Конкретнее задачу опиши
У меня есть запрос к стороннему апи с последующим сохранением результата в бд при любом раскладе эта запись должна быть одна (раз записалась, дальше только обновляется )

Andruha
16.06.2018
09:45:49
Andruha
16.06.2018
09:49:16
спасибо попробую
Может есть болен элегантный способ) я сам еще нуб в монге и ноде

Nikita
16.06.2018
09:51:28
Andruha
16.06.2018
09:52:30
Думаю что есть, пока ещё курю доку могууса
Есть методы типа findOneAndUpdate вроде, посмотри в их сторону

Nikita
16.06.2018
10:28:24
Спасибо ребята, гляну, пока не у компа, всем добра ))

Nick
16.06.2018
12:06:15
в данном случае обычный update с выставленным upsert:true. главное задать корректный фильтр

Nick
16.06.2018
12:28:48
https://docs.mongodb.com/manual/reference/method/db.collection.update/#use-unique-indexes

db.people.update( { name: "Andy" }, { name: "Andy", rating: 1, score: 1 }, { upsert: true } )

во это пря ваш случай https://docs.mongodb.com/manual/reference/method/db.collection.update/#insert-a-new-document-if-no-match-exists

Nikita
16.06.2018
12:34:10
в данном случае обычный update с выставленным upsert:true. главное задать корректный фильтр
если upsert:true то будет будет работать проверка существует ли запись или нет ?

Nick
16.06.2018
12:34:18
да

Nikita
16.06.2018
12:34:55
да
благодарочка )) плюсик в карму )))

Google
Nikita
16.06.2018
12:36:00
да
это я упустил про чтении документации ))

Артем
17.06.2018
08:07:14
Гайсы, а если несколько клиентов одновременно меняют запись, что происходит в Монго?

Алексей
17.06.2018
08:15:01
В айти не бывает одновременно

Артем
17.06.2018
08:17:07
я думаю ты понял, что имелось ввиду

в доках написано что update поддерживает атомарность в рамках одного документа

не могу понять как это?

Nick
17.06.2018
09:33:50
это значит что только одна операция записи будет проводиться над одним документом в один момент времени. используются стандартные блокировки на запись

также это значит что если одновременно из двух разных мест делается изменение значения поля, то результатом будет выполнение записи от самого нового

и туда же, если вы указыаете для фильтра некоторую информацию, которая меняется из другого коннекта, то от очередности зависит выполнится ли изменение или нет

смотри логи монги

yopp
17.06.2018
11:54:30
Ну вот и причина: не хватает дескрипторов.

https://docs.mongodb.com/manual/reference/ulimit

Vladimir
17.06.2018
12:55:32
Всем привет! Прошу помочь с агрегацией данных. Есть несколько коллекций со строками, и нужно сгруппировать строки по некоторым (кастомным) признакам схожести. Грубо говоря, из этого: { a: ['aaa', 'bbb', 'ccc'] b: ['aab', 'bbc', 'xyz'] c: ['aac', 'uvw', 'xyz'] } Должно получиться вот это [ { a: 'aaa', b: 'aab', c: 'aac' }, { a: 'bbb', b: 'bbc' }, { a: 'ccc' }, { b: 'xyz', c: 'xyz' }, { c: 'uvw' } ] Изначальных коллекций около 20, размерность каждой - порядка 100тыс. записей. Насколько это трудоёмко в реализации и по быстродействию на монге? Или имеет смысл смотреть в сторону реляционных БД?

Nick
17.06.2018
13:06:50
по всем коллекциям сразу невозможно

а так https://docs.mongodb.com/manual/reference/operator/aggregation/group/

Vladimir
17.06.2018
13:11:28
Насколько я понимаю, таким образом можно группировать только по предустановленным аккумуляторам... Проблема в том, что у меня в роли аккумулятора - кастомная js-функция сравнения. Я могу её каким-то образом применить для группировки?

Nick
17.06.2018
13:12:02
нет

хотя, можно использовать map-reduce и там уже что угодно в пределах почти чистого Js

но MR такое себе, если операции редкие то пойдет

Vladimir
17.06.2018
13:14:23
ок, спасибо, буду пробовать!

Google
Bandikoot
17.06.2018
15:45:01
если инициализация процесса происходит через systemd, то лучше прямо в service-файле прописать LimitNOFILE=%num%

invzbl3
18.06.2018
17:39:01
пытаюсь подключиться к кластеру и получаю ошибку: "com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=cluster.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]" Кто-то сталкивался с таким?

кластер уже создан, админ с паролем есть

Alexander
18.06.2018
17:40:56
Коллеги, а как сообщить mongos, что конфиг сервер другой?

Страница 260 из 342