RapidCodeLab
vendor/go.mongodb.org/mongo-driver/bson/primitive.E composite literal uses unkeyed fields(undefined)
RapidCodeLab
пытаюсь вставить запись, или обновить если такая есть уже, по полю CountryCode
RapidCodeLab
в консоли helpers.go:14: [ERROR] Upsert rate: update document must contain key beginning with '$'
Sardor
Чат нормальный, ни разу не было, чтобы ушел отсюда без ответа. Но вот твой вопрос непонятен, возможно, стоит его переформулировать (или я его не догнал)
Sardor
Круто
Это магия?
Sardor
Магия в том, что надо уметь задавать вопросы
Nick
Его не стоит переформулировать, нужно просто пойти почитать документацию к монге, особонно секцию с операторами в запросах, и разобраться в базоввх вещах, а потом поиграться с самой бд.
Nick
https://docs.mongodb.com/manual/reference/operator/
Nick
Max
тебе же ещё вчера кто-то дал ссылку на оператор $in..
Roman
https://docs.mongodb.com/manual/reference/operator/aggregation/sample/
а вот такая штука поможет брать случайную запись?
Gor
а в чем притензия, в том что тебе не помогли?
yopp
Gor
yopp
Ещё попрошу не использовать фразу «почитайте документацию». Знаете где найти в доке — дайте ссылку и воздержитесь от комментариев не относящихся к вопросу.
yopp
Еще стоит воздержаться от оценок скорости или качества ответов других участников.
yopp
Давайте поддерживать атмосферу доброжелательности и профессионализма. Для срачей в телеге достаточно места
Gor
Nickolay
Вот бы сейчас вечер выходного дня тратить на советы в чате.
Eugene
Для срочных проблем у монги есть энтерпайз саппорт, а не комьюнити независимых пользователей.
yopp
Я попросил не продолжать эту ветку дискуссии. Неделя в R/O, в следующий раз будет бессрочное.
yopp
@keystr0ke и @eugenebutusov на 24 часа в R/O.
Roman
Ребят такой вопрос, если я в moongose измею одно свойство документа и сделаю .save другие свойства тоже перезапишутся?
Roman
я хочу менять например count, но чтобы started не менялось, вдруг "задачу" кто то выключит, а я опять ее перезапишу на true, а там уже false к тому моменту
Roman
или нужно проверять перед записью?
Roman
иногда мне кажется, что moongose мне вообще был не нужен
Roman
db.getCollection('profiles').aggregate(
[{ $sample: { size: 1 }}]
)
могу ли я сюда вставить еще и параметры запроса
Roman
типа done: false
Nick
$match
Anonymous
Привет. Подскажите, есть сущность юзера, в которой хочу сделать несколько полей со ссылками на соцсети. Сделать их просто :
{
username: String
...
facebook: String
instagram: String
....
reddit: String
}?
Или объединить в поддокумент:
{
username: String
...
socialLinks: {
facebook: String
instagram: String
....
reddit: String
}
}?
Михаил
Anonymous
AstraSerg
Имхо, sociallinks - лишняя сущность.
Andrey
если используешь graphql то второй, так удобнее писать резолвер на поле
AstraSerg
Ну если считаете, что есть необходимость, то можно конечно сделать, но опасаться нечего.
Anonymous
Большое спасибо за советы👌🏿
Anonymous
Столкнулся с проблемой: команда listCollections периодически застревает в ожидании shared lock на БД на 20-30 минут, и все операции записи в эту БД тоже прекращаются пока эта команда не отработает:
command rrpdb.$cmd appName: "MongoDB Shell" command: listCollections { listCollections: 1.0, filter: {}, nameOnly: true, authorizedCollections: true } numYield
s:0 reslen:3670 locks:{ Global: { acquireCount: { r: 2 } }, Database: { acquireCount: { R: 1 }, acquireWaitCount: { R: 1 }, timeAcquiringMicros: { R: 1366479668 } } } protocol:op_command 1366480ms
Alexander
RapidCodeLab
Nick
апдейт документа в монге атомарен
Eugene
я думаю вопрос про то, когда несколько коннекторов и каждый ставит свое значение в поле
Nick
ответ останется тем же
Eugene
хотя это уже проблема инфраструктуры, а не субд
RapidCodeLab
апдейт документа в монге атомарен
я немного не понимаю, атомарен слово, то есть если два инстанса приложения, захотят подкрутить счетчик в одном документе одновременно, что будет?
Nick
это значит что изменеие всего документа делаейтся за один раз. А вас интересует что будет с очередностью и конечным результатом - применятся в порядке того как будут выполняться запросы над данным документом. Порядок не фиксирован, если это не в пределах сессии/транзакции
RapidCodeLab
очередность не важна, главное чтоб конечный результат был
Nick
результат всегда конечен и зависит от очередности, если ваши операции не идемпотентны
RapidCodeLab
"идемпотентны" чувствутся нехватка ВО(
Nick
вообещ я не совсем коректно применил его, оно значит что повторное выполнение действия не изменит данные, т.е. даже если ктото изменил документ и после этого повторно применить запрос, то данные не изменятся
RapidCodeLab
напишу колхозным языком, есть n инстансов приложения, которые хотят обновить счетчик у одного документа, хотят они это делать относительно часто, пару К в сек, меня интересует, в итоге в документе счетчик будет соответствовать тому, что я ожидаю)
RapidCodeLab
то есть какой-то инстанс может получить "отлуп" и его запросы на инкремент не будут учтены
Nick
да так и будет, если ипользовать встроенный $inc для изменения счетчика
RapidCodeLab
вот тут мне стало грустно(
Nick
а что не так?
RapidCodeLab
яможет не правильно понял, "так и будет" означает, что счетчик в итоге не будет таким как должен?
Nick
имеется ввидо что строго сколько запросов выполнится, на стольк осчетчик и увеличится
RapidCodeLab
отлично, это для меня было важно, спасибо)
RapidCodeLab
а сколько-то запросов не выполнится?)
Nick
причем этот механиз не требует транзакций, т.к. как раз полагается на атомарность изменения, этакую микротранзакцию над одним документом
Nick
RapidCodeLab
да я про то, чт какой-то инстанс получит ошибку, вроде "база занята", по таймауту коннект упадет и т.д.
RapidCodeLab
Nick
на этот случай если хотите гарантий то используйте транзакции
RapidCodeLab
погрешность в пару % допустима в принципе
Nick
тогда не думайте об этом
RapidCodeLab
эте не деньги, просто понимать сколько каких событий было, но максимально близко к реальности
Artyom
привет, подскажите кто как локально бэкапит монго ?
Artyom
репликасеты в частности
Dmitry
на английском конечно
Nick
)))
Nick
Зависит от сферы деятельности. Я считаю эрланг, один из самых престижных яп. Но это мое только мнение.
RapidCodeLab
у каждого своя кухня, я за голанг)
Nick
вы с какой целью интересуетесь?
Артем
Asp.core
Anonymous
NodeJS(js) или Python
Maxim
Привет. Объясните, что означает поле 'example.com', где взять юзернейм и пароль, как их установить и что такое authSource
client = MongoClient('example.com',
... username='user',
... password='password',
... authSource='the_database',
... authMechanism='SCRAM-SHA-256')
Alexander
C, конечно же