
Nick
21.03.2018
17:15:22
Когда не помещается в оперативу раз пять
Т.е. На 1гб рам 5 гб данных

No
21.03.2018
17:16:07
Столкулся с проблемой, делаю запись скриптом, в Mongo тип значения int64 стоит, я записывается значение int32 , и из-за этого проблема. Что можно придумать ?

Nick
21.03.2018
17:17:51
Язык какой?

Google

No
21.03.2018
17:18:43
PHP

Nick
21.03.2018
17:23:23
Тогда не подсуажу
но в общем случае смотрите доку к своему драйверу и как он мапит типы данных вашего языка в типы монги

Sergey
21.03.2018
19:23:59
у меня есть mongoose схемы:
1) Post, в которой есть поле author
c рефом на схему User (автора поста).
2) схема Reply, в которой есть поле postId с рефом на Post
и поле author c рефом на схему User (автора комментария).
я могу находить отдельно все коментарии по id поста
могу завести массив с id-шников всех комментариев.
Как лучше делать? И как мне выводить количество
комментариев у поста когда комментраии не нужно грузить ?
заводить в схеме Post поле replyCount и при создании
нового коментария увеличивать этот счетчик у Post ?
но ведь может так произойти что комент сохранился,
а счетчик не увеличелся из-за сбоя, тогда он будет всегда отставать

Yurii
21.03.2018
19:29:05

Sergey
21.03.2018
19:32:10
я делаю для учебного проекта )
что более подходящее для вывода количества коментариев ?

No
21.03.2018
19:35:10
Кто пожет помочь с запросом. Нужно у данного _id изменить в accountsBag->items->... count где itemid=7 )
Как правильно добраться до этих строк?
$bulk->update(
['_id' => 3],
['$set' => ['accountBag' => array('CashInventory' => array('items' => array('items' => array(0 => array('count'=>123) ) ) ) )]],
['multi' => false, 'upsert' => false]
);

Игорь
22.03.2018
07:05:55
а такой вопрос. Если условно мне нужно искать по фамилии, имени, отчеству, то лучшим решением будет сделать во всех документах поле 'полное имя' и искать по нему? опять же индекс не подойдет, именя могут быть на англиском

Nick
22.03.2018
07:39:30
а вам надо искать полное совпадение или частичное или допускаются ошибки или даже часть букв введенное на англицкой расrлfдке?

Игорь
22.03.2018
07:48:09
полное соврадение введенной подстроки в строке.
то есть при поиске по имени, найдет всех иванов. Но при поиске по имени, фимилии, отчеству найдет всех строго совпадающих.
вообще в задаче товары. только поле имя товара в приходящих данных разбито на три поля. А искать по ним нужно, как по одному.
То есть если вбили машики carmaker
где машинки одно поле в объекте(категория), а carmaker производитель,
то искать он дожен на полное совпадение.
как если бы это было одним полем name

Google

yopp
22.03.2018
07:55:27
Stable: 3.6.3 (Feb 23, 2018), Bugfix: 3.4.14 (Mar 20, 2018)
3.6.3: https://docs.mongodb.com/manual/release-notes/3.6/#february-23-2018
3.4.14: https://docs.mongodb.com/manual/release-notes/3.4/#march-20-2018
3.2.19: https://docs.mongodb.com/manual/release-notes/3.2/#feb-6-2018 (End of life: September 2018)
3.0.x: Support ended February 2018

Nick
22.03.2018
08:31:18
сам поиск просто будет выглядеть как
.find({
"f1":"v1",
"f2":"v2",
"f3":"V3"
})
и результат такой же как если вы сделаете доп поле

Игорь
22.03.2018
08:34:17
если я правильно понял, составной индекс типа текст?

Nick
22.03.2018
08:37:04
нет,текстовый индекс нужен, когда у вас есть, например, заголовки статей и хотите искать по слову статьи с таким словом в заголовке. тогда текстовый индекс введенный заголовок разбивает на отдельные слова и дает возможность быстрой найти по отдельному слову саму статью
а в вашем случае это простой обыкновенный индекс

Pasha
22.03.2018
08:45:07
Здравствуйте, нужна помощь с выборкой в одной колекции находятся id_bot и statement текст, в другой полная информация о statement. У меня есть id_bot и мне нужно сначала с первой коллекции найти все связанные с ним statement, а затем во второй, мне нужно выбрать,по тем statement которые связаны с id_bot in_response_to.text

Nick
22.03.2018
08:48:43
посмотрите на $lookup

Pasha
22.03.2018
09:03:19
посмотрите на $lookup
Спасибо, а можно ещё один вопрос, смотря на вторую картинку как достать in_response_to.text? .find({'text': 'I am good.'}) ,а как быть дальше?

Nick
22.03.2018
09:04:25
это уже от вашего языка зависит. в данном случае получите весь документ целиком и работать будете с ним

Pasha
22.03.2018
09:05:04

Nick
22.03.2018
09:06:12
вообще через $unwind после лукпапа развернете массив, а дальше с помощью $project соберите результат
но нужно саму задачу поподробнее, а то советы могут не в тему быть

Игорь
22.03.2018
09:07:17
а в вашем случае это простой обыкновенный индекс
там проблема в том, что пользователь не может точно определить к какому полю, какая часть поискового запроса относиться. то есть он вводит название товара, категория и продваец, как единую строку. что есть что не определяется. если бы я мог разбить заранее на значения для полей, задача значительно упростилась бы, но увы

Nick
22.03.2018
09:09:20
вот как раз здесь текстовый индекс отработает, у него вроде есть возможность задать список полей по которому строить, т.е. не потребуется делать составное поле

Игорь
22.03.2018
09:17:02
но он не может быть мультиязыковой, в этом беда. Английский и русский текст в перемешку.
я вот и думаю, придеться делать новое поле из трех и по нему регуляркой искать
допустим в поле продавец может быть название как на русском, так и на английском языке(

Nick
22.03.2018
09:18:44
а вы тестирвоали?

Google

Darvin
22.03.2018
09:18:49
hello
im new member
from indonesia
nice to meet all

Nick
22.03.2018
09:19:54
nice to meet all
this is russian group. try english version https://t.me/mongo_db

Darvin
22.03.2018
09:20:18

Igor
22.03.2018
09:30:27
Кстати, кто чем монгу в проде бэкапит?

Nick
22.03.2018
09:31:18
реплики

Igor
22.03.2018
09:33:43
реплики != бэкап

Nick
22.03.2018
09:35:17
в нашем случае нет необходимости в бекапах, да и просто снять бекап займет слишком много время и ресурсов. так что реплики
и в базу никто руками не лазит
а от какого сценария вы хотите забекапиться?

Igor
22.03.2018
09:38:23
сервер с монгой упадёт и всё потеряетя

Nick
22.03.2018
09:38:37
реплика с этим справляется

Igor
22.03.2018
09:38:41
реплик нет, у заказчика только 1 vm, и он хочет бэкапиться

Nick
22.03.2018
09:39:04
хех, тогда не помогу

Igor
22.03.2018
09:39:13
реплика с этим справляется
а как реплика справляется в случае ошибок в коде, неверных действий админов, после которых данные удаляются?
или данные перезаписываются не те

Nick
22.03.2018
09:39:58
легко, на прод выкатывается протестирвоанный софт, а админы пишут скрипты и руками ничего не делают. и скрипты тк же прогоняются на тесте

Igor
22.03.2018
09:40:12
ну, тесты не все ошибки могут выявить

Google

Igor
22.03.2018
09:40:20
баг может и на прод проникнуть
тесты не серебряная пуля

Nick
22.03.2018
09:40:41
перезатирку всех данных выявлять должно иначе что это за тесты

Igor
22.03.2018
09:41:02
тут вопрос в человеческом факторе
в тестах тоже могут быть ошибки
и в огранизационном

Nick
22.03.2018
09:41:53
работая с неквалицировнным персоналом бекапов не напасешься

Igor
22.03.2018
09:42:22
квалифицированный тоже может ошибаться
кто не работает - тот не ошибается

Nick
22.03.2018
09:43:18
так то да, вообщем по бекапам ничего не посоветую. но наверняка с одним инстансом толкьо через остановку
ну или обычный дамп

Igor
22.03.2018
09:43:38
ну я пока на обычный дамп смотрю
его же можно онлайн делать, ведь?

Ivan
22.03.2018
09:52:48
Я не понимаю, этот чатик используют когда лень документацию читать что ли?
Не надо так

Dmitriy
22.03.2018
10:01:51
А кто-нибудь юзал джоины в монге? Как быстро они работают?

Stepan
22.03.2018
10:04:51
джоин ?
всмысле $lookup ?

Dmitriy
22.03.2018
10:05:21
джоин ?
помню в доке читал что она вроде джоины научилась делать

Stepan
22.03.2018
10:05:38
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

Google

Stepan
22.03.2018
10:06:59
Работате вроде быстро

Dmitriy
22.03.2018
10:08:28

Stepan
22.03.2018
10:08:59
Но как я понимаю, использовать надо крайне редко. Хотя бы потому что, если надо много "джоинов", то скорее всего вы не правильно используете монгу

Игорь
22.03.2018
10:10:06
а вы тестирвоали?
да, то есть согласно докам для каждого поля в коллеции может быть определен язык. То есть документ может быть мультиязычный, а вот отдельное поле нет

Dmitriy
22.03.2018
10:13:42

Nick
22.03.2018
10:15:44
при это неизвестно какое конкретно это поле

Игорь
22.03.2018
10:16:41
а в другом
{
"v1" : "текст",
"v2" : "word"
}

Nick
22.03.2018
10:17:24
ок

yopp
22.03.2018
10:24:39

Igor
22.03.2018
10:25:06

yopp
22.03.2018
10:25:25
От требований к бекапам зависит ;)
Обычно всё упирается в то, сколько денег на это готовы дать