
Dmitry
08.01.2018
11:39:24
я попробую преобразовать теги в обычный массив строк, на данном этапе я ничего не теряю, а дальше посмотрим
но тогда вопрос в догонку, как реагирует монга на смену _id у поддокумента? Например у меня есть {id: 1, title: 'apple'}, я меняю на {id: 2, title: 'apple'}
ей придётся перестраивать индексы или как?
или вообще всё равно
или я загоняюсь над предварительной оптимизацией

Google

yopp
08.01.2018
11:41:49
id — immutable.
Можно только удалить старый документ и создать новый
Если не нужно искать по строке, всегда можно построить вторичный hashed индекс по title и использовать его.
А сколько вообще документов планируется сейчас?

Dmitry
08.01.2018
11:44:33
сейчас около тысячи документов в которых есть массив с тегами, в среднем 3-4 тега на документ
мало
планируется не больше десятка тысяч документов

yopp
08.01.2018
11:45:43
Тогда делайте так, как будет быстрее разрабатывать.

Dmitry
08.01.2018
11:46:18
верно, спасибо!

yopp
08.01.2018
11:47:05
Я бы остановился на массиве текстовых тегов

worsvch
08.01.2018
15:30:12
/

Oleg ?
09.01.2018
08:07:12
ребят привет. может кто рассказать про методы инкрементального бэкапа в монге. как делаете ?

Старый
09.01.2018
08:15:10

Google

Старый
09.01.2018
08:15:37
остальное мазахизм

Sergey
09.01.2018
08:16:11
Реплика - это не бекап
Реплика - это реплика
Из реплики данные недельной давности ты не достанешь, при необходимости.

yopp
09.01.2018
08:24:55

Zloy Dobriy
09.01.2018
08:26:58
jamshoot)

Max
09.01.2018
08:47:45
Никак. Hidden member + fs snapshot
мы тут у себя сделали типа
—query "{XXX_time: {\$gte: ${DATE_FROM}, \$lte: ${DATE_TILL}}}"
DATE_FROM и DATE_TILL заполняются за вчерашнее число
понятно, что это одна коллекция, но может помочь, если в коллекции есть нужные данные к которым можно привязаться

yopp
09.01.2018
08:48:26
Это не инкрементальный бэкап. И вообще это очень сомнительный способ

Max
09.01.2018
08:50:17
я согласен
но умнее не придумал
У нас снапшот делается 1 раз в месяц, а вот тяжелая коллекция сохраняется таким образом, по $lte/$gte
дальше всё догоняется
и после снапшота старые данные удаляются
теоретически оно ж должно сработать при восстановлении базы - т.е. вливание пачки bson-ов по очереди приведет базу к нужному состоянию

yopp
09.01.2018
08:53:51
Инкрементальный бекап при должной сноровке можно сколхозить из оплога.
Всё остальное это уже экспорт на уровне приложения и тут надо быть крайне осторожным и иметь постоянную автоматическую верификацию.

Viktor
09.01.2018
08:56:01
По идее в 3.6 с changeStream'ами возможности поколхозить прибавится
Прибавилось*


Crazy
09.01.2018
10:36:08
Привет Парни! Возник вопрос с датой и временем, может кто то сталкивался или просто скажите свое мнение.
У меня на сайте есть аналитика визитов страниц.
У каждого человека есть страница.
А в аналитике я должен выдавать сколько посещений было в конкретный день, чисто типо того: 01.02.17 без секунд и прочего.
Понятно что можно хранить UTC в базе данных, но тогда для определения точной даты мне нужно будет хранить данные в секундах как минимум, это может достигать до 86,400 документов в mongodb, если каждую секунду страницу пользователя будут посещать.
На данный момент поддерживать все это мне сложно будет.
Решил сделать так, хранить в базе пользователя локальное время того человека, страницу которого посещают другие пользователи.
И в аналитике например вывести например: Данные соответствуют времени: UTC +3.
Это нормально?
Да может человек переместится в другое место, с другим часовым поясом или может он зарегается в одной стране а живет в другой и через неделю приедет обратно домой.
Но все таки если я не могу записывать документы в mongodb ежесекундно, это оптимальный вариант?


IGOR
09.01.2018
10:37:54

Oleg ?
09.01.2018
13:09:46
и еще вопрос: у меня монга 3.2.18 WT. почему то залезла в СВОП, хотя на хосте еще 5гб фри памяти. это норм поведение ?

Moe
10.01.2018
08:30:11
гайз, я основы mongoose только изучил пока
нашел статью по MEVN ( mongo+express+vue+node )
автор создает route:
// Fetch all posts
app.get('/posts', (req, res) => {
Post.find({}, 'title description', function (error, posts) {
if (error) { console.error(error); }
res.send({
posts: posts
})
}).sort({_id:-1})
})
мне непонятен аргумент 'title description' в его коде - что он значает?

Dmitriy
10.01.2018
08:33:04
Добрый день

Google

Dmitriy
10.01.2018
08:34:08
Подскажите пожалуйста, как произвести поиск в коллекции по id? Есть коллекция posts, надо найти post по get параметру
Структура такая:
{ _id: 5a55bede5811571afba5f918,
title: 'Vue 2.0 Hello World',
text: 'Welcome!' },
Надо ли добавлять свое поле id помимо _id?
Чтобы потом вывести из коллекции объект в таком виде: db.collection("posts").find({id:1})

Aleksandr
10.01.2018
08:40:40
а чем не устраивает _id ?
в монге в качестве айдишника uuid

Moe
10.01.2018
08:41:20

Dmitriy
10.01.2018
08:42:10
Допустим я создал 3 поста

Aleksandr
10.01.2018
08:42:27
find({_id: ObjectId("uuid_string")});

Dmitriy
10.01.2018
08:42:31
И хочу вывести последний
например 3-й
вот и хочу искать в такм ключе {_id: 3}
У меня REST приложение, поэтому и хочу чтобы на запрос posts/1 - выдавал первый пост из коллекции и т.д.

Aleksandr
10.01.2018
08:54:21
ну так пусть будет posts/5a55bede5811571afba5f918
ну и вы под первым постом из коллекции имеете в виду пост с ID 1, верно же?

Dmitriy
10.01.2018
08:56:01
да
Просто привык к Mysql, sqlite. Я просто дергал по id и все

Google

Aleksandr
10.01.2018
08:56:36
ну я бы переезжал на uuid, чтобы не задумываться об инкременте айдишников
ну тут просто дергать по uuid )
вместо привычной цифры будет строка с uuid

Dmitriy
10.01.2018
08:57:19

Aleksandr
10.01.2018
08:57:40
это так поначалу )
потом уже проще

Nick
10.01.2018
09:01:34

Dmitriy
10.01.2018
09:02:50
сурово, буду отвыкать )

yopp
10.01.2018
09:58:28

Aleksandr
10.01.2018
09:58:56
в качестве основы ObjectId идет юид же
точнее uuid подобная строка

yopp
10.01.2018
10:33:36
UUID и ObjectId это две абсолютно разные вещи.
В них общего только то, что они для идентификации используются.

eshch
10.01.2018
10:36:01
ну еще оба генерятся на клиентах распеделенной системы

yopp
10.01.2018
10:37:42
Монга может тебе сама ObjectId присваивать, если ты _id не передашь.

eshch
10.01.2018
10:39:26
может

Dmitriy
10.01.2018
10:45:11
Как можно отрендерить коллекцию из mongodb во view express?
Рендер статьи по uuid без проблем, т.к. он один

Nick
10.01.2018
10:45:58
тебе в чат по ноде
или около того

Google

Dmitriy
10.01.2018
10:46:33
Ок, спасибо

Danil
10.01.2018
15:38:58
А уже был пост про потерю производительности в связи с патчами для meltdown? ) редис хорошо был оптимизирован под спекулятивное выполнение, процентов 30-40 потерял

Moe
10.01.2018
17:41:22
вопрос нуба в mongo - drop database - удалить базу данных?
почему такое странное название? почему не просто remove?

Ruslan
10.01.2018
17:41:50
чтобы свой-чужой делать быстро

Tenni
10.01.2018
17:45:48

yopp
10.01.2018
17:46:10

Moe
10.01.2018
17:46:48

yopp
10.01.2018
17:47:18
Да. В случае с remove останутся и индексы и все прочие настройки.

Tenni
10.01.2018
17:48:31
это понятно

yopp
10.01.2018
17:48:37
Но хорошая новость что у монги не udp

Vladimir
10.01.2018
17:53:50
Добрый вечер. Кто-нибудь сталкивался с такой ошибкой?
motorengine.errors.LoadReferencesRequiredError: The property 'creator_id' can't be accessed before calling 'load_references' on its instance first (Campaign) or setting __lazy__ to False in the Campaign class.

yopp
10.01.2018
17:54:31
Ваш ODM сломался где-то
Судя по сообщению где-то атрибут на связанной модели вызывается раньше чем сама модель загружена
Вероятно кто-то пытается обратится к модели создателя которая связанна через creator_id с Campaign, но по какой-то причине это происходит раньше запроса в монгу. Или у campaign значение creator_id отсутствует например.