Vladimir
Спасибо
Nick
Vladimir
Nick
Artem
мне нужно поставить пароль на соединение и разрешить удаленное подключение к монге только к этому юзеру, это реализуемо? дока сплошная по облаку..
yopp
yopp
SCRAM самый простой вариант
https://www.mongodb.com/docs/manual/tutorial/configure-scram-client-authentication/
Artem
Artem
сделал, все работает ✨
Anonymous
salaam alaikum
tmp
Привет всем!
Насколько mongodb хорошо держит запросы? Несколько тысяч в секунду смешанных запросов на чтение/добавление/обновление документов, на неслабой линуксовой тачке (8 ядер, 16 или 64 RAM, 1 гбит канал в обе стороны) вытянет?
tmp
И как его по максимуму оптимизировать?
Alexander
мне кажется тут в основном неспециалисты или начинающие специалисты)
Alexander
ну тогда пусть повезет! )
Andrey
ребят, помогите, уже какую неделю монга начала останавливаться, 4.2.1
крайние логи:
2022-04-27T08:43:24.951+0000 I TXN [conn5298] transaction parameters:{ lsid: { id: UUID("d731e818-38c5-4aef-ab08-789e4586791b"), uid: BinData(0, 830872FC3F605AFFB6F640ED87DB86D55DCD03BE1E29155D54CDA151B743588A) }, txnNumber: 199, autocommit: false, readConcern: { level: "snapshot" } }, readTimestamp:Timestamp(0, 0), keysExamined:64 docsExamined:50 terminationCause:committed timeActiveMicros:15563 timeInactiveMicros:137671 numYields:0 locks:{ ReplicationStateTransition: { acquireCount: { w: 2 } }, Global: { acquireCount: { w: 1 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 3 } }, Mutex: { acquireCount: { r: 3 } } } storage:{} wasPrepared:0, 153ms
2022-04-27T08:44:29.959+0000 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2022-04-27T08:44:29.960+0000 I REPL [RstlKillOpThread] Starting to kill user operations
2022-04-27T08:44:29.961+0000 I REPL [RstlKillOpThread] Stopped killing user operations
2022-04-27T08:44:31.107+0000 I NETWORK [conn5304] end connection 10.255.0.235:51446 (12 connections now open)
2022-04-27T08:44:39.961+0000 I REPL [RstlKillOpThread] Starting to kill user operations
2022-04-27T08:44:39.961+0000 I REPL [RstlKillOpThread] Stopped killing user operations
2022-04-27T08:44:39.963+0000 I STORAGE [signalProcessingThread] Failed to stepDown in non-command initiated shutdown path ExceededTimeLimit: No electable secondaries caught up as of 2022-04-27T08:44:39.961+0000. Please use the replSetStepDown command with the argument {force: true} to force node to step down.
2022-04-27T08:44:39.974+0000 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets...
2022-04-27T08:44:39.974+0000 I NETWORK [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2022-04-27T08:44:39.975+0000 I - [signalProcessingThread] Stopping further Flow Control ticket acquisitions.
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] shutting down replication subsystems
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] Stopping replication reporter thread
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] Stopping replication fetcher thread
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] Stopping replication applier thread
2022-04-27T08:44:39.979+0000 I REPL [rsSync-0] Finished oplog application
что может быть не так?
Alexander Cheprasov
Всем привет! Читаю книги по монге и не могу понять пример по работе с текстовым индексом
Как в выборку попал Tektite и ещё несколько других?
Tony
отличный пример привели, хотели показать как работает, а показали что не работает)
Daniil
Wassilevs
так как мы не видим сам индекс по тексту, то просто верим на слово, что в 10 доках которые вернулись есть в тексте ключевые слова по которому выполнялся поиск
Daniil
Пример говно безусловно, особенно если где то выше не описывался индекс и полностью не показывались данные, но не факт, что ошибочный
Alexander Cheprasov
Alexander Cheprasov
Alexander Cheprasov
Nick
ребят, помогите, уже какую неделю монга начала останавливаться, 4.2.1
крайние логи:
2022-04-27T08:43:24.951+0000 I TXN [conn5298] transaction parameters:{ lsid: { id: UUID("d731e818-38c5-4aef-ab08-789e4586791b"), uid: BinData(0, 830872FC3F605AFFB6F640ED87DB86D55DCD03BE1E29155D54CDA151B743588A) }, txnNumber: 199, autocommit: false, readConcern: { level: "snapshot" } }, readTimestamp:Timestamp(0, 0), keysExamined:64 docsExamined:50 terminationCause:committed timeActiveMicros:15563 timeInactiveMicros:137671 numYields:0 locks:{ ReplicationStateTransition: { acquireCount: { w: 2 } }, Global: { acquireCount: { w: 1 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 3 } }, Mutex: { acquireCount: { r: 3 } } } storage:{} wasPrepared:0, 153ms
2022-04-27T08:44:29.959+0000 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2022-04-27T08:44:29.960+0000 I REPL [RstlKillOpThread] Starting to kill user operations
2022-04-27T08:44:29.961+0000 I REPL [RstlKillOpThread] Stopped killing user operations
2022-04-27T08:44:31.107+0000 I NETWORK [conn5304] end connection 10.255.0.235:51446 (12 connections now open)
2022-04-27T08:44:39.961+0000 I REPL [RstlKillOpThread] Starting to kill user operations
2022-04-27T08:44:39.961+0000 I REPL [RstlKillOpThread] Stopped killing user operations
2022-04-27T08:44:39.963+0000 I STORAGE [signalProcessingThread] Failed to stepDown in non-command initiated shutdown path ExceededTimeLimit: No electable secondaries caught up as of 2022-04-27T08:44:39.961+0000. Please use the replSetStepDown command with the argument {force: true} to force node to step down.
2022-04-27T08:44:39.974+0000 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets...
2022-04-27T08:44:39.974+0000 I NETWORK [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2022-04-27T08:44:39.975+0000 I - [signalProcessingThread] Stopping further Flow Control ticket acquisitions.
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] shutting down replication subsystems
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] Stopping replication reporter thread
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] Stopping replication fetcher thread
2022-04-27T08:44:39.976+0000 I REPL [signalProcessingThread] Stopping replication applier thread
2022-04-27T08:44:39.979+0000 I REPL [rsSync-0] Finished oplog application
что может быть не так?
ключевое
CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
гуглеж показал что тут либо проблемы с настройками
https://stackoverflow.com/questions/38059330/mongodb-crash-got-signal-15-terminated
либо ктото действительно прибивает монгу - тут настраивать аудит действий и отсматривать системные логи
ну и на всякий раз уж итак то и дело стопается обновитесь до последний версий
Артем
Всем привет, вот у меня есть описанные коллекции такими классами
class ChatRoom(Document):
total_messages: int = IntField(default=0)
class MessageV2(Document):
chat_room: ChatRoom = ReferenceField(ChatRoom, required=True)
number_id: int = IntField() # номер сообщения в чате
Как мне поступить, чтоб обеспечить хоть какую то атомарность вставки сообщения и актуальности его number_id? Суть в чем, что я вставляю сообщение, инкрементирую счетчик сообщений в чате, присваиваю номер сообщению равный счетчику сообщения в чате. Примерно следующим образом.
chat = ChatRoom.objects.get(id=chat_id)
chat.total_messages += 1
message = MessageV2(chat_room=chat, number_id=chat.total_messages).save()
chat.save()
C монгой знаком не сильно, вижу есть какой-то инструмент агрегаций (свой фреймворк) и не пойму подходт ли он мне? ЗАпустить транзакцию из питонячьего кода не представляется возможным.
tmp
Всем привет, как в монго взять sample с параметрами? Например мне нужно N случайных документов, где одно поле меньше или равно M
Tony
tmp
tmp
Действительно)
Tony
https://database.guide/3-ways-to-return-a-random-sample-of-documents-from-a-mongodb-collection/
Комёб
Привет появилась такая ошибка "Server Error option usecreateindex is not supported" как это исправить?
Oleg
привет всем, как адекватно пройтись по всей коллекции, при это запрашивая например 100 элементов, что то выполнять, а потом следующие 100 элементов и так далее
есть ли в монге что то встроенное для этого? или только с помощью limit и skip
Andrey
Дима
Привет. Такой вопрос. Допустим у меня есть что-то типу этого:
"chat_users": [
{
"user_id": 1041161677,
"user_name": «Игрок 1»
},
{
"user_id": 1053385663,
"user_name": «Игрок 2»
}
]
Как подсчитать количесвто этих элементов внутри?
Viktar
Сароар🧑🏼🦱
как обновлять все
db.words.updateMany({ $set: { userId: ObjectId("624c31898addf0419b877915") }});
uncaught exception: TypeError: can't convert undefined to object :
DBCollection.prototype.updateMany@src/mongo/shell/crud_api.js:648:20
Сароар🧑🏼🦱
вот так я попробовал
P1GAS
Nick
Сароар🧑🏼🦱
@P1GAS спасибо
P1GAS
Сароар🧑🏼🦱
Обращайтесь)
[ INFO ] GET /admin/words [request-id: 3405CADF-0938-4057-96FF-D38A12DAAA74]
[ WARNING ] invalid field: userId type: ObjectId error: Couldn't find type ObjectId at path "[]" [request-id: 3405CADF-0938-4057-96FF-D38A12DAAA74]
P1GAS
Сароар🧑🏼🦱
можеть быть она не видить userId
Сароар🧑🏼🦱
Inline ®
Здравствуйте, подскажите, если я в двух разных скриптах использую одну базу данных и постоянно подключаюсь к ней и одного скрипта из з другого. Ничего страшного в этом нет?
dnacd 🦜
Inline ®
dnacd 🦜
Oleg
Здравствуйте, есть базовая информация о товаре, и его цена которую нужно сохранять в базу раз в час. Как лучше реализовать схему? Встраивать цену в массив или же делать ссылку в специальной коллекции для цен на родителя?
Влад
Nick
Nick
Adatan
@yatoba блокни спам бота с реакциями пж
Nick
Oleg
благодарю всех за информацию, а если допустим обновление цены было бы каждую минуту, получается быстро закончились бы 16 мб. Нужно было бы делать коллекцию с ссылкой на родителя и добавлять индекс на родителя или есть какуе-то другие бест практикс решения
Nick
Nick
Но это надо ручками реализовывать, но иногда реально имеет смысл
Andrey
Eshu
Eshu
а вопрос по time-series коллекциям, а индексы по каким-то полям в мета информации строить можно, интересно?
Дима
Привет. Вопрос например есть запрос aggregate, внутри $project и высчитывается например умножение двух значений и записывается в sumOfGroup, можно как-то потом в этом же $project использовать sumOfGroup? Чтобы после этого вычисления ещё разделить это число на 100 надеюсь понятно объяснил. Вот пример, но он не работает:
db.users.aggregate([
{
$match: { id: 1 }
},
{
$project: {
_id: 0,
sumOfGroup: {$multiply: ["$balance", "$percent"]},
divideSum: {$divide: [sumOfGroup, 100]}
}
}
])
Eva🇺🇦
AggregationCursor в mongoose удален?
ReactIsFramwork
Andrey
gql'ом
gql к сожалению не решит проблему, узкое место БД и тут нужен баланс между средний объем документа и кол-во запросов к БД для самых популярных операций
все в один запихнуть тоже не всегда верно, если частое обновление, то будут блокировки или же если большая часть дока неиспользуема в 90% сценариев - считай нагрузка на сеть (гкл как раз решит только это)
ReactIsFramwork
прошу прощение - термин запрос интерпритировал неверно
Nick
Дима
Дима
Null
помог
Никита
Не силён в питоне, но кажется, будто запрос должен вызываться с await, либо передавать параметром callback