@MongoDBRussian

Страница 250 из 342
redbeard
27.05.2018
14:01:36
то есть, имеет смысл брать тазики с большим кол-вом рамы?

Nick
27.05.2018
14:19:08
Т.е надо начать делать и получать данные, когда вы точно опрелите круг задач и форматы данных и наберетесь тпыта эксплуатации монги, то уже сможете скорректировать ваши хранилища

Много памяти хорошо когда железо свое, еслм аренда то лишние траты

redbeard
27.05.2018
14:23:45
то есть, иначе, монга под эти задачи, в принципе, годится, нужно будет только подтюнить?

Google
Nick
27.05.2018
14:36:29
Да

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

redbeard
27.05.2018
15:00:20
да, скорее всего, валить будет много. спасиба :)

George
27.05.2018
17:05:50
Всем привет. Столкнулся с проблемой update. Кейс: Нужно найти документы по определенному признаку и в найденных записать 0 в предпоследнее значение массива, который является одним из полей. Теоретически, должно быть что-то типа вот такого: db.items.update({%условия поиска%}, { $set : { "array.-2" : 0}}) , но там не работает обращение по негативному индексу, как, например в position. В общем перепробовал уже кучу вариантов, но чет не нахожу решения.

yopp
27.05.2018
18:02:42
Основное свойство чатов: короткое время актуальности. Через сутки, сообщение скорее всего больше никогда не будет повторно прочитано.

Вам надо будет хранить очень много данных, очень и очень дёшево. И совсем ничтожную часть данных держать горячей

В монге вы хорошо сможете это решить шардированием, но придётся немного повозиться. Если нужно потом делать аналитику, то сложнее. Но тоже решаемо.

agic
28.05.2018
16:02:16
вопрос не по монго ну может кто знает

find({ "answer.0.results.0.to" : "tatata", date: {$gte: ISODate("2018-05-28T18:22:58Z")}}) такой вот запрос в монго вполне рабочий `my $now = DateTime->now; my $n_minutes_ago = $now->add( minutes => -3 ); my $then = DateTime->now( time_zone => 'Europe/Moscow' )->truncate( to => 'minute' )->add( minutes => -3 ); my $cnt = $users->find({ "answer.0.results.0.to" => $arg1, "date" => {'$gte' => $then}});` может кто увидит где я с датами накосячил ( 2018-05-28T18:47:00 print then а он выводит все что есть по запросу как будто игнорируя gte

Nick
28.05.2018
16:07:54
используйте 3 обратных апострофа или как они называются

agic
28.05.2018
16:13:10
поясните

Илья
28.05.2018
16:16:18
копируя сюда многострочный код лучше использовать три обратных апострофа ` ` ` текст текст ` ` ` вот так (только между апострофами пробелов не должно быть)

Google
Илья
28.05.2018
16:16:52
иначе парсер телеграмма может корёжить код как ему вздумается

agic
28.05.2018
16:33:28
я уже всю голову поломал

и пробывал и тройные кавычки и экранирование, и экранирование экранирование

Илья
28.05.2018
16:47:30
если "тгдесктоп" это официальный, то всегда умел

John
28.05.2018
17:25:25
Ребят почему может не работать index({ createdAt: 1 }, { expires: '1m' });

John
28.05.2018
17:47:42
timestamps: true, оно же в нужном формате создается

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

Nick
28.05.2018
17:49:12
"timestamps: true" это кто делает?

точнее опция к чему

John
28.05.2018
17:49:28
mongoose

к схеме

const RegSchema = Schema( { username: { type: String, required: true, unique: true, }, contacts: { type: String, required: true, }, status: { type: String, enum: ['awaiting', 'rejected', 'approved'], default: 'awaiting', required: true, }, }, { timestamps: true }, ); RegSchema.index({ createdAt: 1 }, { expires: '1m' });

Nick
28.05.2018
17:50:21
а ьеперь залезте в базу и гляньте в каком виде там

John
28.05.2018
17:52:13
в ISO, вроде так и должно быть

{ "_id" : ObjectId("5b0c417cfca6fd103435381a"), "status" : "awaiting", "username" : "кккккккккккккккк", "contacts" : "кккккккккккккккк", "createdAt" : ISODate("2018-05-28T17:50:52.793Z"), "updatedAt" : ISODate("2018-05-28T17:50:52.793Z"), "__v" : 0 }

Andrew
28.05.2018
17:55:16
Ребят, есть тут кто юзает mlab? У меня только что БД упала, локально и на хостинге. Может, Кто знает в чем трабла ( может там обновление какое или еще что ). Код на хостинге не трогал, т.е. проблема в млаб

John
28.05.2018
17:57:50
да, но я пробовал по разному и 3600

Google
Nick
28.05.2018
17:58:14
3600 - эквивалент часу

там ж секунды

John
28.05.2018
17:58:43
это я потом уже понял, 60 тоже пробовал

дело не в этом мне кажется

Nick
28.05.2018
17:59:14
а индекс пересоздавали?

советую сейчас првоерит ькакие нидексы созданы в базе

John
28.05.2018
17:59:42
у меня для сессий connect-mongo тоже задает expires, так вот для сессия в базе появляется поле expire, а тут его нет

дропал и создавал по новой раз 10)

{ "v" : 2, "key" : { "createdAt" : 1 }, "name" : "createdAt_1", "ns" : "db.regs", "expireAfterSeconds" : 60, "background" : true }

Nick
28.05.2018
18:07:19
вроде выглядит верно, а время на сервере в какой таймзоне?

John
28.05.2018
18:19:25
ISODate("2018-05-28T18:19:16.211Z")

я сейчас на сервер UTC поставил, чтобы совпадало

но похоже это не помогло

А нет помогло)

Спасибо))

Alexander
29.05.2018
04:51:43
Всем привет. Подскажите, плиз, есть коллекция: { _id: ..., author: '...', text: '...' } как сделать выборку с группировкай по автору?

Nick
29.05.2018
06:16:01
Alexander
29.05.2018
06:17:24
что значит "сгруппировать" ? какой результат вы ожидаете получить?
[ { name: "Vasya", items: [...] }, { name: "Petya", items: [...] }, ] как-то так

Nick
29.05.2018
06:18:28
тогда вам в aggregation и там соотвественно group

Google
Viktor
29.05.2018
07:51:23
доброго времени суток, на реплика-сете стоит монга 3.4.3, могу ли я безопасно отсоединять от реплики по одному серверу и апгрейдить их до 3.4.15?

т.е. отсоединил, обновил и сразу заново в реплика сет подключил инстанс

Artem
29.05.2018
07:53:04
а зечем отсоединять?

остановил репликацию, погасил софт, обновил, запустил

Анатолий
29.05.2018
08:50:44
Привет! Кто может подсказать почему если указать в db.collection.find().skip(3400) - запрос начинает долго висеть и выбирает 100000 документов. А всего их 3600?

точнее будет сказать что в запросе идут limit(20).skip(3400) - т.е. я делаю пагинацию/постраничку

Nick
29.05.2018
08:52:52
сначала скип потом лимит

Анатолий
29.05.2018
08:55:03
нету разницы. всё равно находит больше результатов чем их есть

какая-то хрень =(

в db.currentOp() - numYields это не количество результатов?

Анатолий
29.05.2018
10:31:46
в find 3600 запросов

а когда делаю find.skip.limit - зависает и numYields растет

если я правильно понимаю explain - почему то идёт по всем документам в коллекции вообще

"executionStats" : { "executionSuccess" : true, "nReturned" : 20, "executionTimeMillis" : 1509937, "totalKeysExamined" : 19542300, "totalDocsExamined" : 19542300,

yopp
29.05.2018
10:34:45
Ну да. А как вы ещё ожидаете будет работать skip и limit без индекса?

Анатолий
29.05.2018
10:35:37
а почему на обычный find не делает такое?

Viktor
29.05.2018
10:35:39
а зечем отсоединять?
Чтобы даунтайм минимизировать

Анатолий
29.05.2018
10:35:46
и когда skip маленький - тоже не делает

а когда на последнюю страницу в постраничной навигации кликаешь - начинается такая хрень

Google
Nick
29.05.2018
10:37:26
а какое услвоие в самом find?

yopp
29.05.2018
10:38:19
а почему на обычный find не делает такое?
Потому что find возвращает курсор. Find без условий открывает курсор с $natural сортировкой без условий. Если вы не итерируете курсор, то такой запрос будет выполнятся быстро, потому что это начало списка. Чем ближе к концу, тем больше документов надо перебрать.

Добавление skip просто автоматически проматывает курсор вперёд на X документов

Анатолий
29.05.2018
10:39:50
у меня find с сортировкой

когда делаю count - сразу возвращает сколько результатов - 3600

получается, если сделать skip - то он начнет искать по всей коллекции?

не смотря на то что уже нашел эти 3600?

yopp
29.05.2018
10:41:16
Я не понимаю что вы говорите

Анатолий
29.05.2018
10:41:32
вот find нашел 3600 записей по индексу

yopp
29.05.2018
10:41:51
Приведите примеры запросов, так будет проще.

Анатолий
29.05.2018
10:41:53
получается мне проще просто итерировать эти записи скажем в php, чем делать skip в mongodb?

Nick
29.05.2018
10:41:57
у меня find с сортировкой
можете скопировать сюда само выражение

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