Nikita
можете собрать вручную через написание полноценной агрегации с лукапами и тогда уже можно будет задействовать сортировку из монги
я с этими лукапами и аггрегацией не знаком напишите плиз а то в монгусе сижу впервые пожалуйста
Vened
И ещё такой вопрос. Я читал что репликасет нуждается в арбитре, что бы менять местами примари и секондари. Но я наверное ерунду какую-то прочитал, потому что я не настраивал арбитр, но если отключить мой примари сервер, то какой-то из двух других становится примари. В таком случае нужен ли вообще арбитр, и для чего он?
Арбитр полезен в случае чётного количества хостов в репликасете. Почитай в официальной документации, что такое кворум и как он подсчитывается. Если кратко: чтобы сет мог нормально пережить потерю одной ноды, в выборах праймари должны участвовать хотя бы два хоста. Арбитр в данном случае — это способ получить голос в выборах праймари не тратясь на полноценный по ресурсам хост
Vened
Репликасет из трёх полноценных хостов нормально переживает потерю одного хоста и без наличия арбитра.
Aza 👁️
привет всем, почему unique не работает?
Aza 👁️
Cloud
Дропни коллекцию, и попробуй заного создать
dflppkaaaaaa
Здравствуйте, я пытаюсь запустить своего бота телеграм на хостинге pythonanywhere, но как только выполнение доходит до точки, где нужна работа с mongoDB, мне сразу выдаёт ошибку.
yopp
Проверьте что ip сервера на котором запускается бот добавлен в белый список атласа https://docs.atlas.mongodb.com/security/ip-access-list/
yopp
Или curl ipconfig.me
yopp
Если у вас есть доступ к терминалу на сервере
dflppkaaaaaa
Благодарю
yopp
Или curl ipconfig.me
Вот зто покажет реальный внешний адрес, если вдруг вы за NAT
Anatole
Подскажите репликацию Сложно настроить mongodb Лить в aws instance с локального сервера Сколько времени займет
Viktar
Anatole
База 200 гигаб канал 100 mbit
Anonymous
Ребят, если я монговские _id с ObjectID переведу на Number (1, 2, 3, 4, 5) это будет окей? Кто-нибудь практиковал такое?
Anonymous
а зачем?
красивее, чтобы ссылки были site.com/users/3002
Anonymous
просто хочу узнать можно так сделать или будут проблемы
Shokhboz
красивее, чтобы ссылки были site.com/users/3002
если хочешь url быть красивым то используй slugify
🐽 Alex
или что то типа того
🐽 Alex
лучше _id не трогать
jrm
Народ подскажите как мне связать product с category? при вызове product были его category и на оборот , подскажите ссылку где это реализовать ?
Nick
красивее, чтобы ссылки были site.com/users/3002
в монге нет автоинкремента, поэтому вам придется либо использовать какието тулы либо делать это вручную. Но использовать вместо _id чтото кроме ObjectID вполне себе нормально, вплоть до объектов
Ilya
Доступна документо-ориентированная СУБД MongoDB 5.0 https://opennet.ru/55481/
Ilya
Попытался обновить свою локальную базу до версии 5.0. При запуске в логах выбрасывает ошибку: "Invalid value for featureCompatibilityVersiondocument in admin.system.version, found 4.2, expected '4.4' or '4.9' or '5.0' ". Раньше у меня была версия 4.4, между прочим, ну да ладно, это неважно. Судя по всему, файлы движка MongoDB обновились, а вот данные инстанса базы - нет. Что делать, не удалять же данные?
jrm
народ подскажите пжл , мне нужно реализовать один к многим через mongodb ,категорий к продуктам ,я новичок в этом , type: Schema.Types.ObjectId, ref: ''} думал по этим ссылкам их связать но чет не получается, буду рад если скините ссылку где это подробно расписано
yopp
https://docs.mongodb.com/v4.4/release-notes/4.4-upgrade-standalone/#enable-backwards-incompatible-features
Andrii
всем привет, подскажите как правильно перенести данные базы с одного сервера (монга стоит из пакетов) на другой, но в докер контейнер? mongodump/mongorestore работает, но долго восстанавливается...
Andrii
Она и работать в докере не супер будет, скорее всего
Почему? Данных пока немного, до 8 гиг
Дмитрий
Почему? Данных пока немного, до 8 гиг
Ну, из-за особенностей работы ввода-вывода в докере. Там же, вроде, максимум 300 iops или типа того. Железка (даже виртуалка) даёт намного больше.
Дмитрий
Почему? Данных пока немного, до 8 гиг
У вас раздел хотя бы внешний подключен, или прямо внутри контейнера БД крутится? Вообще, это не логично. Иначе, данные бы не сохранялись после перезапуска... 🤔
Ivan
откатить бинарники до 4.4, поднять featureCompatibilityVersion до 4.4, накатить назад бинарники 5.0
Какие по вашему причтны у разрабов монги, чтобы не бампать fc автоматически?
yopp
проблемы с даунгрейдом
Andrii
У вас раздел хотя бы внешний подключен, или прямо внутри контейнера БД крутится? Вообще, это не логично. Иначе, данные бы не сохранялись после перезапуска... 🤔
Конечно, через volume подключена я попробовал через rsync перенести все файлы, но при старте получаю ошибки 2021-07-14T10:20:19.123-0400 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2021-07-14T10:20:19.151-0400 I - [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2021-07-14T10:20:19.151-0400 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=18G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress), 2021-07-14T10:20:19.332-0400 I STORAGE [initandlisten] WiredTiger [1626272419:332073][27823:0x7ff46ba70dc0], txn-recover: Main recovery loop: starting at 234/100628352 2021-07-14T10:20:19.332-0400 I STORAGE [initandlisten] WiredTiger [1626272419:332264][27823:0x7ff46ba70dc0], txn-recover: Recovering log 234 through 236 2021-07-14T10:20:19.332-0400 E STORAGE [initandlisten] WiredTiger (0) [1626272419:332398][27823:0x7ff46ba70dc0], file:collection-4-6556960939820272718.wt, txn-recover: read checksum error for 4096B block at offset 4095725568: block header checksum of 934456822 doesn't match expected checksum of 3696805911 2021-07-14T10:20:19.332-0400 E STORAGE [initandlisten] WiredTiger (0) [1626272419:332406][27823:0x7ff46ba70dc0], file:collection-4-6556960939820272718.wt, txn-recover: collection-4-6556960939820272718.wt: encountered an illegal file format or internal value 2021-07-14T10:20:19.332-0400 E STORAGE [initandlisten] WiredTiger (-31804) [1626272419:332410][27823:0x7ff46ba70dc0], file:collection-4-6556960939820272718.wt, txn-recover: the process must exit and restart: WT_PANIC: WiredTiger library panic 2021-07-14T10:20:19.332-0400 I - [initandlisten] Fatal Assertion 28558 2021-07-14T10:20:19.332-0400 I - [initandlisten] может быть надо не все файлы с /var/lib/mongo переносить, а какие-то определенные?
Дмитрий
Конечно, через volume подключена я попробовал через rsync перенести все файлы, но при старте получаю ошибки 2021-07-14T10:20:19.123-0400 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2021-07-14T10:20:19.151-0400 I - [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2021-07-14T10:20:19.151-0400 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=18G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress), 2021-07-14T10:20:19.332-0400 I STORAGE [initandlisten] WiredTiger [1626272419:332073][27823:0x7ff46ba70dc0], txn-recover: Main recovery loop: starting at 234/100628352 2021-07-14T10:20:19.332-0400 I STORAGE [initandlisten] WiredTiger [1626272419:332264][27823:0x7ff46ba70dc0], txn-recover: Recovering log 234 through 236 2021-07-14T10:20:19.332-0400 E STORAGE [initandlisten] WiredTiger (0) [1626272419:332398][27823:0x7ff46ba70dc0], file:collection-4-6556960939820272718.wt, txn-recover: read checksum error for 4096B block at offset 4095725568: block header checksum of 934456822 doesn't match expected checksum of 3696805911 2021-07-14T10:20:19.332-0400 E STORAGE [initandlisten] WiredTiger (0) [1626272419:332406][27823:0x7ff46ba70dc0], file:collection-4-6556960939820272718.wt, txn-recover: collection-4-6556960939820272718.wt: encountered an illegal file format or internal value 2021-07-14T10:20:19.332-0400 E STORAGE [initandlisten] WiredTiger (-31804) [1626272419:332410][27823:0x7ff46ba70dc0], file:collection-4-6556960939820272718.wt, txn-recover: the process must exit and restart: WT_PANIC: WiredTiger library panic 2021-07-14T10:20:19.332-0400 I - [initandlisten] Fatal Assertion 28558 2021-07-14T10:20:19.332-0400 I - [initandlisten] может быть надо не все файлы с /var/lib/mongo переносить, а какие-то определенные?
Вы на горячую переносите чтоли?
Elinka22
А ты откуда переносил - делал полный лок БД?
Andrii
Вы на горячую переносите чтоли?
я на горячую перенес файлы, попробовал запуститься вообще хотелось бы на горячую перенести файлы, потом стопнуть старый сервер, засинкаться еще раз, стартануть и переключить приложение, но так еще не пробовал, это только в теории
Дмитрий
Если надо смигрировать БД с минимальным простоем, то делайте добавляйте новую реплику, а в момент Икс просто переключитесь на неё с минимальным простоем.
Дмитрий
Либо останавливать БД, делать копию на холодную, запускаться, а потом эту копию тащить куда угодно...
Andrii
Либо останавливать БД, делать копию на холодную, запускаться, а потом эту копию тащить куда угодно...
в итоге можно rsync'ом на горячую синкануть, потом стопнуть старый сервер, синкануть с ключем --delete и стартовать новый сервер, так поднимается
Aleksandr
доброго времени суток! подскажите пожалуйста что я делаю не так? mongoexport -d xxx -c yyy --query '{"createdAt": {"$gte": ISODate("2021-07-14T16:09:00+03:00"), "$lt": ISODate("2021-07-14T16:10:00+03:00")}}' 2021-07-14T16:42:12.238+0000 connected to: mongodb://localhost/ 2021-07-14T16:42:12.239+0000 Failed: error parsing query as Extended JSON: invalid JSON input. Position: 23. Character: I версия монги 4.4.6 монгоэкспорт 100.4.0. Раньше это работало, до апдейта на 4.4 ( был 3.х) Причем из консоли всё ок с этим запросом rs0:PRIMARY> db.yyy.find({"createdAt": {"$gte": ISODate("2021-07-14T16:09:00+03:00"), "$lt": ISODate("2021-07-14T16:10:00+03:00")}})
Andrey
Парни, подскажи пожалуйста про Slow query: {"t":{"$date":"2021-07-14T19:59:06.684+03:00"},"s":"I", "c":"COMMAND", "id":51803, "ctx":"conn65","msg":"Slow query","attr":{"type":"command"...... Делаю mongoexport выгружаю в csv в query поле проиндексировано. Документов конечно много, где-то 60 млн. Но всё-таки
Aleksandr
попробуйте ковычки в isodate, хотя как
Переделал на {date “…” } вместо исо и задаботало
Aleksandr
Бучая монга)
Dima
всем нихао. как поставить пароль на доступ к инстансу монги? т.е через условный mongo можно было подключиться только по паролю
Aleksandr
mongodb_config: storage: dbPath: /var/lib/mongodb journal: enabled: true wiredTiger: engineConfig: cacheSizeGB: 16 net: port: 27017 bindIp: 0.0.0.0 tls: mode: requireTLS certificateKeyFile: "{{ mongodb_ssl_directory }}/mongodb.pem" CAFile: "{{ self_signed_ca_flatcar_host_path }}" disabledProtocols: TLS1_0,TLS1_1 allowConnectionsWithoutCertificates: true replication: replSetName: rs0 processManagement: timeZoneInfo: /usr/share/zoneinfo security: authorization: enabled keyFile: "{{ mongodb_ssl_directory }}/shared.key"
.
всем привет, тут проблема в коде, когда делаю вот так ничего не обновляется почему-то, когда просто через консоль db... то все обновляется. именно не работает при updateOne, хоть сколько их делаю, остаются значения от new ... через модель, а тут ничего а новая модель создается только если пользователь не найден, то она создается, а так я делаю через find
Anton
всем привет, кто может подсказать что это? и как это могло получиться? 2 дня назад всё ок было
Ivan
всем привет, кто может подсказать что это? и как это могло получиться? 2 дня назад всё ок было
Это происходит обычно с теми, кто юзает image:latest наверное, в 5.0 что-то поменялось.
Aza 👁️
Dima
sometimes
Pavlo
Всем привет! Как включить шардирование для уже существующей нешардированной коллекции? Был standalone инстанс монги, преобразовал его в кластер, включаю шардирование, но по факту данные продолжают литься в существующий шард. sh.status() chats.messages shard key: { "_id" : "hashed" } unique: false balancing: true chunks: mongo1 1 { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : mongo1 Timestamp(1, 0) не хватает алгоритма разделения по шардам При создании пустой новой коллекции с шардированием всё ок chats.messages_sh shard key: { "_id" : "hashed" } unique: false balancing: true chunks: mongo1 2 mongo2 2 { "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong("-4611686018427387902") } on : mongo1 Timestamp(1, 0) { "_id" : NumberLong("-4611686018427387902") } -->> { "_id" : NumberLong(0) } on : mongo1 Timestamp(1, 1) { "_id" : NumberLong(0) } -->> { "_id" : NumberLong("4611686018427387902") } on : mongo2 Timestamp(1, 2) { "_id" : NumberLong("4611686018427387902") } -->> { "_id" : { "$maxKey" : 1 } } on : mongo2 Timestamp(1, 3)
Aleksandr
Всем привет! Как включить шардирование для уже существующей нешардированной коллекции? Был standalone инстанс монги, преобразовал его в кластер, включаю шардирование, но по факту данные продолжают литься в существующий шард. sh.status() chats.messages shard key: { "_id" : "hashed" } unique: false balancing: true chunks: mongo1 1 { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : mongo1 Timestamp(1, 0) не хватает алгоритма разделения по шардам При создании пустой новой коллекции с шардированием всё ок chats.messages_sh shard key: { "_id" : "hashed" } unique: false balancing: true chunks: mongo1 2 mongo2 2 { "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong("-4611686018427387902") } on : mongo1 Timestamp(1, 0) { "_id" : NumberLong("-4611686018427387902") } -->> { "_id" : NumberLong(0) } on : mongo1 Timestamp(1, 1) { "_id" : NumberLong(0) } -->> { "_id" : NumberLong("4611686018427387902") } on : mongo2 Timestamp(1, 2) { "_id" : NumberLong("4611686018427387902") } -->> { "_id" : { "$maxKey" : 1 } } on : mongo2 Timestamp(1, 3)
Делал по доке? https://docs.mongodb.com/manual/tutorial/convert-shard-standalone-to-shard-replica-set/
Pavlo
Да! И только что я понял, в чём было дело. Не совсем знаток монги, но видимо чанк сайз изначальной нешардированной коллекции был довольно большой, и она автоматом не разделила его на меньшие. После того, как налил в неё данных относительно много, она расползлась на два шарда, как я и хотел.
Roman
Есть тут извращенцы, которые к монге из кликхауса обращаются?
Вячеслав
Всем привет , через волюм подкладываю папку с бд в новый контейнер монго,в /data/db , но коннекчусь и вижу чистую базу, подскажите куда копать
Leksey
добрый день подскажите, есть проблема failed to connect to server [IP] on first connect MongoNetwork: connect EADDRNOTAVAIL IP
Leksey
добрый день подскажите, есть проблема failed to connect to server [IP] on first connect MongoNetwork: connect EADDRNOTAVAIL IP
вся суть в том, что приложение поднимает дочерние процессы само приложение без проблем работает запускает дочерние процессы - получаем данное сообщение и работает раз через раз конфиги есть, URL корректный, все прочее рабочее
Leksey
какие есть варианты решения?
Roman
Рекорд извращенства побит
Не побит. Там авторизация криво работает
Anonymous
Здравствуйте при find без сортировки какой индекс используется?
Aza 👁️
как можно заменить _id на свой id?
Aza 👁️
ну типа id: 1
Aza 👁️
не могу понять вообще
Aza 👁️
Aza 👁️
я про этот id