@MongoDBRussian

Страница 170 из 342
Котяй Негодяй
01.01.2018
19:55:56
В 3.6.0 rs.initiate() просто работает, а в 3.6.1 я получаю already initialized.

Баг?

yopp
01.01.2018
20:59:17
rs.status() что говорит?

Aleksandr
01.01.2018
20:59:44
heroku?
зарегался, но ничего не понял, тем более, у них нет rpm'a

Google
yopp
01.01.2018
21:00:26
Aleksandr
01.01.2018
21:27:17
Возьми за три бакса виртуалку на ovh
в учебныйх целях начинающий фронт

GNU/Docker
01.01.2018
21:33:21
Фритир есть в амазоне

На год

Aleksandr
01.01.2018
21:34:09
Это паас же.
я тупой же, ну

GNU/Docker
01.01.2018
21:34:35
Зарегайся в aws

Можно будет хилую виртуалку год гонять.

Aleksandr
01.01.2018
21:35:09
оке, спс

GNU/Docker
01.01.2018
21:35:47
Еще в мирантисе такое было

Moe
01.01.2018
21:41:23
mongo учу только. вопрос по mongoose. при создании схемы можно указать unique: true - чтобы поле (допустим. name), в котором указан этот ключ, было уникальным (не повторяющимся) у каждого экземпляра модели, созданной при помощи такой схемы. верно я думаю? а что будет, если я вдруг в процессе создания экземпляров модели случайно задам для объекта А и для объекта Б поля name с одинаковым значением? таким образом - объект А и объект Б будут иметь не уникальные поля name. Что тогда?

GNU/Docker
01.01.2018
21:44:17
Я так понимаю по этому полю создастся индекс

И при вставке будет ошибка.

Google
Moe
01.01.2018
21:47:43
И при вставке будет ошибка.
надо попробовать на примере

GNU/Docker
01.01.2018
21:48:11
Это вообще первое что надо делать.

Moe
01.01.2018
21:49:00
Это вообще первое что надо делать.
да, конечно. но уже час ночи завтра ) надеялся, что есть готовый ответ )

GNU/Docker
01.01.2018
22:00:26
Лишь бы код не писать)

Котяй Негодяй
01.01.2018
22:58:54
rs.status() что говорит?
Говорит, что конфиг невалидный. По логам вижу, что демон сам при запуске проводит инициализацию. Запускаю монгу в докере. С флагом --replSet конфиг инициализируется автоматом и нода в нём выглядит вот так: { _id: 0, host: "a06ac5ce2360:27017", ... Откуда он взял a06ac5ce2360, не понятно. Я пофиксил это костылём, который при создании контейнера вешает хост a06ac5ce2360 на 127.0.0.1, но это ненадёжно, т.к., похоже, что это какой-то хэш, который однажды изменится.

А так всё работает. Если демон находит этот хост, то автоматически делает его мастером.

Но WTF?

anatolii
02.01.2018
03:48:18
Возможно это имя компа (контейнера дркер)

Moe
02.01.2018
07:04:28
Лишь бы код не писать)
попрошу воздержаться от инсинуаций ))

Crazy
02.01.2018
13:37:28
Привет парни. У меня возник вопрос, так как я не силен в backend разработке. Например у меня есть несколько запросов: 1) this.collection("users").findOne({username}) 2) this.collection("users").updateOne({email}) 3) this.collection("users").findOne({username, email}) 4) this.collection("users").findOne({sid, auth}) Мне нужно сделать индексацию. Насколько я понял под каждый запрос нужно делать индексы?

А не под каждое поле. И ещё допустим есть составной индекс из Id, username, auth. Если в запросе меньше полей то этот индекс будет бесполезным ? Поэтому нужно создавать под каждый запрос отдельный индекс?

yopp
02.01.2018
14:36:15
Третий запрос будет использовать пересечение индексов

Индекс с sid и auth не нужен, если sid уникален. Но вообще в этом случае лучше в отдельной коллекции и sid в _id

Котяй Негодяй
02.01.2018
16:46:05
Возможно это имя компа (контейнера дркер)
Неа. До сих пор не понятно, что за хэш.

anatolii
02.01.2018
16:48:34
Неа. До сих пор не понятно, что за хэш.
У меня, к примеру, при пустоц инициализации репликации монга добавлялась как "mongo1:1700"

Crazy
02.01.2018
17:17:20
Индекс с sid и auth не нужен, если sid уникален. Но вообще в этом случае лучше в отдельной коллекции и sid в _id
Т.е когда какое-то поле уникальное, мне не нужно вешать на него индекс?

Индекс с sid и auth не нужен, если sid уникален. Но вообще в этом случае лучше в отдельной коллекции и sid в _id
Извиняюсь если что то тупое сказал, но только так получается учиться))

yopp
02.01.2018
17:19:05
Я такого не говорил. Я говорил что если sid уникален есть смысл вынести эти данные в отдельную коллекцию и засунуть sid в id (если он меньше 1024 байт)

Котяй Негодяй
02.01.2018
17:19:38
У меня, к примеру, при пустоц инициализации репликации монга добавлялась как "mongo1:1700"
mongo-dev: image: mongo:3.6.1-jessie container_name: mongo-dev hostname: localhost ports: - '27017:27017' command: mongod --replSet "rs0" mongo-rs-dev: image: mongo:3.6.0-jessie container_name: mongo-rs-dev depends_on: - mongo-dev links: - mongo-dev:mongo volumes: - ./src/back/mongoInit.js:/mongoInit.js:ro command: mongo "mongo:27017" "/mongoInit.js"

Google
yopp
02.01.2018
17:19:43
А в случае с compound индексом, нет смысла делать постфикс, если префикс уникальный

yopp
02.01.2018
18:00:30
rs.initiate() просто так не работает.
Туда надо передать пустой документ: {}

Окей, спасибо
Если у пользователей больше одного sid то можно и в поддокументе оставить

Котяй Негодяй
02.01.2018
18:01:46
Туда надо передать пустой документ: {}
А известно, по каким соображениям опция автонастройки не предусмотрена?

Или, хотя бы, настройки снаружи.

yopp
02.01.2018
18:02:49
Не хочу быть занудой, но я уже давал ссылку на документацию. Там понятным языком со ссылками всё описано.

Optional. A document that specifies configuration for the new replica set. If a configuration is not specified, MongoDB uses a default replica set configuration.

Котяй Негодяй
02.01.2018
18:03:50
Прошу прощения. =)

yopp
02.01.2018
18:03:54
И автонастройки в каком виде?

Котяй Негодяй
02.01.2018
18:06:02
Настройки чего?
Чтобы не пришлось отдельно подключасться и дёргать rs.initiate(), а, скажем, передавать соответствующий аргумент при запуске. Это может быть полезно при контейнеризации. Например, сейчас мне приходится ради 1 команды поднимать отдельный контейнер рядом.

yopp
02.01.2018
18:06:22
Это убер хреновая идея

Котяй Негодяй
02.01.2018
18:06:26
Как бы, несложно и не накладно, т.к. он сразу умирает, но костыль.

yopp
02.01.2018
18:07:29
В моем опыте, все попытки автоматом разворачивать кластер заканчивались тем, что в один прекрасный день кластер по новой всесело разворачивался поверх данных.

Хочешь играть в русскую рулетку, пиши свои entrypoint скрипты

Котяй Негодяй
02.01.2018
18:09:53
Ну, в данном случае, я дклаю это всё только ради возможности подписаться на изменения в коллекциях.

Google
yopp
02.01.2018
18:09:57
Задача надежно инициализировать кластер в общем виде не решается. Нужны внешние протоколы консенсуса, да и с ними тоже возможно наколоться.

Котяй Негодяй
02.01.2018
18:11:01
О кластере пока речь даже не идёт. На данном этапе не нужно.

yopp
02.01.2018
18:11:10
Реплика — кластер.

Я понимаю твою боль, но она оправдана.

Котяй Негодяй
02.01.2018
18:11:39
Да, но суть в том, что это кластер из одного инстанса.

yopp
02.01.2018
18:12:05
Напиши свой entrypoint

Котяй Негодяй
02.01.2018
18:12:25
Напиши свой entrypoint
Т.е. сейчас я всё делаю правильно?

yopp
02.01.2018
18:13:28
Не знаю. По вопросам как жить с докером лучше идти на девопс канал

Котяй Негодяй
02.01.2018
18:13:35
А могу ли я переопределить дефолтный Replica Set конфиг? Где он лежит? Честно, уже искал. =)

yopp
02.01.2018
18:13:42
Не можешь

Реплика сеты автоматически не разворачиваются.

Это by design.

Хочешь разворачивать автоматом — в другой чат.

Котяй Негодяй
02.01.2018
18:14:49
Не знаю. По вопросам как жить с докером лучше идти на девопс канал
Ну, суть не в докере, а в том, что при запуске инстанса с помощью моего скрипта через монго шелл автоматом инициализируются нужные настройки кластера.

Ок.

Ну и это пока дев инстанс.

yopp
02.01.2018
18:15:30
В самой монге по ряду обоснованных причин для этого нет инструментов.

Есть ops manager

Котяй Негодяй
02.01.2018
18:15:47
Хорошо. Спасибо. =) Прояснилось.

yopp
02.01.2018
18:15:52
Но я не уверен что он скриптуется

Google
Crazy
02.01.2018
19:47:48
Но я не уверен что он скриптуется
Еще раз привет. Я плохо знаю английский, но вроде в документации написано что можно создавать составные индексы, а запросы не обязательно должны включать все поля. Для _id у меня по умолчанию создается индекс. А на счет сортировки - только по _id и нигде больше. Могу ли например теоретически создать такой составной индекс: { sid: 1, auth: 1, id: 1, email: 1, code: -1, username: -1, } А когда делаю запросы на выборку то, иногда включаю 3 поля, иногда 2, а иногда только одно?

Elena
02.01.2018
19:51:13
Ребят, есть возможность нормально установить монго на 7 винду?

Crazy
02.01.2018
19:55:37
а все понял

yopp
02.01.2018
20:32:58
Еще раз привет. Я плохо знаю английский, но вроде в документации написано что можно создавать составные индексы, а запросы не обязательно должны включать все поля. Для _id у меня по умолчанию создается индекс. А на счет сортировки - только по _id и нигде больше. Могу ли например теоретически создать такой составной индекс: { sid: 1, auth: 1, id: 1, email: 1, code: -1, username: -1, } А когда делаю запросы на выборку то, иногда включаю 3 поля, иногда 2, а иногда только одно?
Составные индексы работают слева на право. Это значит что тебе для использования индекса нужно в запросе использовать поля в «порядке» в котором они указаны в индексе. Грубо говоря составной индекс — матрешка. Верхняя матрешка самое левое значение. Это значит что в твоём примере без указания условия с полем sid индекс использоваться не будет.

yopp
02.01.2018
20:33:37
На практике нужно считать compound индекс — уточняющим индексом. Как в почтовом адресе.

Crazy
02.01.2018
20:34:22
?

Mykola
03.01.2018
00:40:51
Если я Model.find({}) мангус возвращает же query не курсор ?. И зате я могу .then и уже использовать данные

Yura
03.01.2018
11:20:53
Добрый день, уважаемые монговоды :-)

Кто интимно знаком со внутренним устройством, можете подсказать? Есть желание сделать драйвер, посылающий запросы в одно соединение асинхронно пайплайном. Протокол вроде на это расчитан (есть поле requestid и response_for). Но меня пугают, что запросы из одного коннекта будут обрабатываться строго по очереди (что, естественно, не айс). Так ли это? Или меня зря пугают?

yopp
03.01.2018
12:54:45
О, привет.

Afair пугают правильно.

Можно посмотреть на client sessions из 3.6, возможно с ними получится сделать что ты хочешь.

Точно в nodejs и c драйверах уже впилено. В руби пару недель назад только куски в транке были

А зачем тебе это?

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