@MongoDBRussian

Страница 238 из 342
Artem
08.05.2018
09:43:56
выбор огромен

A
08.05.2018
09:45:28
например можно арендовать vps установить туда mongo и развлекаться. Можно воспользоваться услугами Mongo Atlas
А если у меня хостинг есть,что мне у них спросить,чтобы они сразу поняли в чем дело и что от них требуется?

Artem
08.05.2018
09:49:07
А если у меня хостинг есть,что мне у них спросить,чтобы они сразу поняли в чем дело и что от них требуется?
ну, я так думаю, что обычный хостинг тут не прокатит, хотя хостеры предоставляют услуги в настройке и сопровождении БД

Google
Artem
08.05.2018
10:14:36
vps - это просто аренда виртуального сервера, т.е. тебе дают вирткальную машину, и заходы на нее, а дальше ты сам делаешь что хочешь.

Алишер
08.05.2018
10:25:31
Вопрос: хочу обновиться с 3.2 до 3.4 в инструкции сказано, что сначала обновить конфиг сервера (для шардед кластера)

но у меня конфиг сервер и реплика находится на одном сервере

Artem
08.05.2018
10:33:44
и в чем проблема?

Алишер
08.05.2018
10:52:59
то, что я подменяя бинарники для конфиг сервера, подмениваю и для реплики.

yopp
08.05.2018
11:09:49
то, что я подменяя бинарники для конфиг сервера, подмениваю и для реплики.
Именно по этой причине не стоит на одном сервере размещать больше одной роли mongodb

Теперь у вас есть два варианта: поставить 3.4 параллельно с 3.2 в /opt например или в /usr/local, и обновить init/systemd таким образом, чтоб конфиг сервера использовали этот путь.

Второй вариант: обновить пакет, но не перезапускать реплику.

Либо остановить реплику и запустись её уже самой последней

Noname
08.05.2018
11:15:52
Господа, столкнулся с такой проблемой. У меня есть поле transactions , в котором ведётся по сути лог изменения баланса пользователя. Переодически происходит такая вещь. Что создаётся двойные запросы. То есть допустим user.balance не может быть меньше 0 Приходит две транзакции на отнятие 100,это добавляется к полю sum. Пример: две транзакции по 100, в поле sum тоже 100. Bроле и блокировка к документу на запись есть, но как это вообще происходит и как пофиксить?

Google
Noname
08.05.2018
11:25:52
Попробую реализовать

Mishell
08.05.2018
20:15:58
Здравствуйте. У меня в mongoose есть массив. vote: [ { "id": 111111, "action": "like" }, { "id": 222222, "action": "dislike" } ] Как мне обновить конкретный элемент массива? К примеру мне нужно заменить action у id: 222222 на like. Кучу всего перерыл, не работает. Часто натыкаюсь на такой пример, но что-то идёт не так и вообще не уверен как это работать должно. Post.update({ 'vote.id': 222222 }, { '$set': { 'vote.$.action': "dislike", } }) Помогите пожалуйста с этой штукой.

8
09.05.2018
10:54:36
db.createCollection is not a function. Я что не так сделал ?

Алишер
09.05.2018
11:00:35
show dbs , use <db name>

потом db.createCollection...

8
09.05.2018
11:36:09


Запускаю другой модуль такой же mongo.js, запускается. А этот ругается на db...

Nikolay добряш
09.05.2018
14:37:24
есть кто шарит mongodb+ c#

?

Viktor
09.05.2018
14:40:33
есть кто шарит mongodb+ c#
лучше сразу задать вопрос

если правильно помню, то Builder<Tournament>.Filter.ElemMatch(x => x.tourgames, Builder<TourGame>.Filter.Eq(x => x.GameId, gameId)

а с апдейтом чуть посложней, Builder<Tournament>.Update.Push(x => x.tourgames[-1].markets[0].records, newRecord)

единственное, что т.к. выборки по маркету нет, то запушить можно только в конкретный

Nikolay добряш
09.05.2018
14:59:22
говорит что то на лямбду

x => x.tourgames[-1].markets, game.markets[0]

Google
Nikolay добряш
09.05.2018
15:07:20
вот так работает, но пушит не туда

Viktor
09.05.2018
15:17:51
а чо говорит-то?

Nikolay добряш
09.05.2018
15:29:55
x => x.tourgames[-1].markets.FirstOrDefault(f=>f.name== "mainmarket").records, game.markets[0].records[0]

ну я вот так сделал

ругается на инвалид оперейшн

x => x.tourgames[-1].markets[0].records

заработало, наверное вижал студия тупила

Пасибо большое

Alexandr
10.05.2018
11:46:18
ребят, чем отличаются редации монги?

yopp
10.05.2018
11:46:53
Лицензия и немного фичами

Ну и ценой :)

Alexandr
10.05.2018
11:47:31
немного фичами - это чем?

yopp
10.05.2018
11:49:34
https://www.mongodb.com/collateral/value-mongodb-subscriptions-datasheet

Ну и ценой конечно.

Alexandr
10.05.2018
11:52:27
спасибо

тогда такой вопрос - что есть In-Memory Storage Engine в монге?

Это только в энтерпрайзе, я прпаильно понимаю?

Alexandr
10.05.2018
12:02:33
То есть выходит, что запуск с ключём —storageEngine inMemory будет крутить базу в памяти и типа будет быстрее?

Google
yopp
10.05.2018
12:03:42
Anton
10.05.2018
12:04:26
Привет всем, такой вопрос, есть запись в таблице такого рода(скрин 1). Нужно запишуть в массив ордерс на основании symbol в массив ordersInfo объект Я смог придумать только такую реализацию(скрин 2)





yopp
10.05.2018
12:04:31
Latency != производительность

Anton
10.05.2018
12:05:03
Но проблема в том, что upsert не срабатыает и в случае, если symbol или id нет, то выдается ошибка MongoError: The positional operator did not find the match needed from the query. Unexpanded update: orders.$.ordersInfo И собственно ничего не работает Может у кого-то есть какие-то идеи или замечания к тому, как лучше это реализовать

Admin
ERROR: S client not available

Alexandr
10.05.2018
12:06:05
Latency != производительность
да и more predictable != faster

целевое назначение, всмысле

yopp
10.05.2018
12:09:16
Stable: 3.6.4 (Apr 13, 2018), Bugfix: 3.4.14 (Mar 20, 2018) 3.6.4: https://docs.mongodb.com/manual/release-notes/3.6/#apr-13-2018 3.4.14: https://docs.mongodb.com/manual/release-notes/3.4/#march-20-2018 (3.4.15 upcoming) 3.2.19: https://docs.mongodb.com/manual/release-notes/3.2/#feb-6-2018 (3.2.20 upcoming, End of life: September 2018) 3.0.x: Support ended February 2018

Anton
10.05.2018
12:12:21
там uspert же должен по сути создать новый документ, если не нашел айдишник или symbol, нет?

yopp
10.05.2018
12:12:49
У вас там positional оператор есть

Вам в сообщение об ошибке и пишут что $ не разрешался в номер элемента

Я не уверен что такая стратегия обоснована на самом деле

Anton
10.05.2018
12:15:20
А как можно по другому сделать?

yopp
10.05.2018
12:15:47
Подумать о другой схеме, которая не будет требовать positional оператора

Вероятно вынести orders в отдельную коллекцию, где в корне будет symbol и id, а в массиве сразу документы. Тогда можно без $ делать push.

А в чём суть использования данной опции?
Такие приложения, которые чувствительны к задержкам

Google
yopp
10.05.2018
12:18:19
Например когда надо QoS для запроса соблюдать, например укладываться в константное время.

Anton
10.05.2018
12:18:54
символов может быть много и создавать под каждый отдельную запись не будет ли странно? И еще такой вопрос, конструкция {'id': req.body.id, 'orders.symbol': req.body.symbol} ищет оба параметра в записи и если не находит хотя бы один, то создает новую запись?

Anton
10.05.2018
12:20:12
окей, а если мне допустим как в моем примере, надо сначала найти id, а потом уже найти symbol

Не под каждую запись, а под каждую пару: пользователь-тикер
так а если у пользователя много тикеров

yopp
10.05.2018
12:20:52
Много — сколько?

Не забывайте что документ и так ограничен 16мб

Anton
10.05.2018
12:21:29
1-20-50

от пользователя зависит

yopp
10.05.2018
12:21:58
Я вам рекомендую идти по пути: make it work, make it right, make it fast

В вашем случае 50 документов на пользователя это ничего совершенно.

Anton
10.05.2018
12:22:45
значит отдельная коллекция, отдельная запись для каждого тикера-символа)

окей, спасибо)

yopp
10.05.2018
12:22:51
А выборка всех ордеров сводится к запросу по id пользователя.

yopp
10.05.2018
12:23:38
Да, я бы начал с отдельного документа на каждый заказ. Тогда у вас точно не будет проблем с ограничением на размер документа.

Anton
10.05.2018
12:24:04
А выборка всех ордеров сводится к запросу по id пользователя.
да мне в целом как я представляю и не нужно дергать все тикеры сразу, а только много ордеров по одному тикеру

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