yopp
Serhii
@dd_bb thx
yopp
@dd_bb thx
если addToSet аргументом берёт не литерал, а структуру, структуры должны быть абсолютно одинаковыми, включая подрядок (т.е. bson представление должно побайтово совпадать)
Ivan
Serhii
@dd_bb got it thx
Ivan
я так и написал в своеем сообщеении
Ivan
что у mlab
yopp
разговор был не о mlab, о монге
Slava
про монгу чо только не говорят
вот я и хочу чтоб вокруг было по минимому мифов) что думаешь про утверждение "при >1000 коннектов на инстанс монге жутко плохо"?) или же тут вопрос в другом - что >1000 уже сама по себе не здоровая ситуация?
yopp
yopp
если человек изначально настроился нагативно по отношению к технологии, то никакая аргументация тут не поможет
Gor
Зависит думаю от агрегации порядка но во втором случае может срабатывать оптимизация точно, особенно если только индекс.
Gor
Explain сделай
Gor
И там и там, увидишь в чем разница
yopp
find.count может оптимизирвоать по covered query
yopp
мы тут помоему это уже обсуждали
Gor
Во втором случае наверняка что то веселое
Gor
Павел
Привет. Подскажите как отсортировать данные по полю обджекта, который лежит в аррее, и одно из полей этого обджекта проходит по условию.
yopp
Владислав
Друзья, есть проблема. операция findById к одной коллекции выполняется в 11-12 раз дольше, чем таже операция, но на другой коллекции
с чем это может быть связано? куда смотреть для поиска решения?
yopp
explain
The first
В коллекции лежит всего 10 документов...
The first
Но операция выполняется 750 мс
Олег
подскажите, лимит документа как-то можно изменить?
я про те 16Мб
yopp
Олег
другой вопрос
как обойти ошибку в 16Мб на документ, когда делаю аггрегированный запрос по большой куче данных?
Gor
Gor
Gor
Олег
Gor
Bson на один документ - не на все
Gor
Запрос покажешь?
Георгий
Всем привет, есть вопрос как сделать связь одной коллекции с другой правильно?
- магазин
- продукт
Получается в магазине могу посмотреть продукты
В продукте список магазинов где он продается.
Мне приходит на ум только одно
В магазине хранить массив продуктов(логично), в продукте массив магазинов, нормальный подход? Или как то по другому? А то мне коллеги которые работают с реляционными БД говорят создать коллекцию где эти связи будут, но я что-то не допираю как😅
yopp
https://www.mongodb.com/world/hackathon
yopp
yopp
в магазине массив продуктов хранить не обязательно, потому что продукты в этом магазине можно получить запросом к коллекции продуктов
yopp
через коллекцию тоже можно, но в этом не очень много смысла
Георгий
Gor
yopp
yopp
массив айдишников магазинов вполне себе решение
yopp
сделать по нему индекс и вот
Nikolai
Всем привет, нормально ли, что при репликации у меня основаная нода, где были данные, висит в SECONDARY, а вторая нода — в STARTUP2?
Gor
Nikolai
И есть ли возможность сделать основную ноду доступной для записи?
Nikolai
Gor
Gor
Или как там она называется что без данных а для голосования только
yopp
Gor
О арбитр
yopp
yopp
например если связей не много и они постоянно все используются
yopp
документные хранилища, в отличии от табличных, позволяют плавно регулировать степень денормализации/нормализации в зависимости от паттернов использования
yopp
каких-то общих советов тут тяжело дать, потому что это всё зависит от конкретного случая
Георгий
Ооо так более понятно))
Георгий
А есть где нибудь об этом почитать всем на русском?🙈
Nikolai
добавить арбитра https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter
Пишет, что не мастер 🙁
rs0:SECONDARY> rs.addArb(«meh:27018", {"force": true})
{
"ok" : 0,
"errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is SECONDARY; use the \"force\" argument to override",
"code" : 10107,
"codeName" : "NotMaster"
}
yopp
Nikolai
Nikolai
В смысле, можно будет продолжить реплицироваться?
yopp
в худшем случае она начнётся с начала
yopp
в логах можно посмотреть на прогресс
yopp
и худший случай наиболее вероятен, если нода ещё не начала тянуть оплог
yopp
но помоему когда оплог тянетс там recovering, а не startup2
Nikolai
Чет выключил вторую ноду, но основная всё равно SECONDARY
Nikolai
Кажется, оно зациклилось )))
rs0:SECONDARY> rs.reconfig(cfg, {force : true})
{
"ok" : 0,
"errmsg" : "Replica set configuration must contain at least one non-arbiter member with priority > 0",
"code" : 103,
"codeName" : "NewReplicaSetConfigurationIncompatible"
}
rs0:SECONDARY> rs.addArb(«meh», {"force": true})
{
"ok" : 0,
"errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is SECONDARY; use the \"force\" argument to override",
"code" : 10107,
"codeName" : "NotMaster"
}
rs0:SECONDARY>
yopp
а что в rs.config?
yopp
Replica set configuration must contain at least one non-arbiter member with priority > 0
yopp
значит в cfg в members нет самой ноды
Nikolai
{
"_id" : "rs0",
"version" : 87740,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "moodle-vm:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : «meh:25517",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : 60000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5ca7b84f2a827e91d18d8607")
}
}
Nikolai
Вроде есть
yopp
ээээ
yopp
"priority" : 0,