Alexandrr
Насчёт поддержки согласен Просто сейчас моих мозгов не хватает как чуть усложнить На сегодня важно, чтобы отображение кириллицы не сломалось
если продукт предполагает развитие, тогда ни о каких кириллицах, CJK, GGL и т.д. в бэкенде речи быть не может, тем более в ответах API переводами только фронт занимается, а ты с бэка раздаёшь статику в файликах и не более того
Air
Что-нибудь типа { name: "category1", children: [ {name: "cubcat1", children:[...]}, {name: "cubcat2", children:[...] ] }, { name: "category1", children: [ {name: "cubcat1", children:[...]}, {name: "cubcat2", children:[...] ] },
При такой схеме я смог вывести первый уровень категории, но подкатегории по выбору 1 уровня нет Хорошо, не буду сдаваться 😄
Andrey K.
Хай, подскажите почему changestream может отдавать 0 доступных записей? У нас шардированный кластер. В джава нацелелись на источник стрима. Запустили чтениt стрима изменений. Потом после манипуляций с БД, перестали получать изменения из changestream.
вот такая еще штука может влиять, смотря по конфигурации. Сам не сталкивался, но про кейсы рассказывали https://www.mongodb.com/docs/manual/reference/read-concern-majority/#mongodb-readconcern-readconcern.-majority-
Andrey K.
Хай, подскажите почему changestream может отдавать 0 доступных записей? У нас шардированный кластер. В джава нацелелись на источник стрима. Запустили чтениt стрима изменений. Потом после манипуляций с БД, перестали получать изменения из changestream.
Read concern "majority" returns data that has been acknowledged by a majority of the replica set members (i.e. data cannot be rolled back) if the transaction commits with write concern "majority". If the transaction does not use write concern "majority" for the commit, the "majority" read concern provides no guarantees that read operations read majority-committed data. если , допустим, у вас кластер ПСА (праймери-секондари-арбитр), ну к примеру, и вывалилась нода, то могут быть вычитаны данные устаревшие
Andrey K.
ну это конечно частный случай достаточно...
Alexx
Ребят, привет. Подскажите пожалуйста, уже всю голову себе измотал...: Телеграм бот, монгодб, класс: chat, коллекция: user, в которую я внес имя, фамилия, юзер айди и текущий баланс. написал функции внутри класса: def update_current_balance(self, user_id, top_up): self.user_collection.update_one({"_id": user_id}, {"$inc": {"current_balance": top_up}}) подаю функции из основного кода значение top_up, а текущий баланс не меняется в бд, ошибок бот никаких не выдает, но в бд не меняет значение
Alexx
А что update_one возвращает, не логируете?
прошу прощения..., нашел ошибку... всем спасибо
Alex
Добрый вечер. Коллеги, подскажите пожалуйста, как в аггрегации округлить корректно число до целого, чтобы 1.01 был 1,а 1.99 - 2. Как я понял, $round (n, 0) всегда округляет до 1
Артём
Подскажите имеею такой объект { "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", "topics_indexed": [ { "topic": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "index": 0 }, { "topic": "0x0000000000000000000000006748f50f686bfbca6fe8ad62b22228b87f31ff2b", "index": 1 }, { "topic": "0x0000000000000000000000007f2954d0550c39381131e33a6b61688f89282b16", "index": 2 } ] } И такой кампаунд индекс TOPICS_INDEXED.INDEX TOPICS_INDEXED.TOPIC ADDRESS Подскажите как получить запрос по первым двум индексным полям ? Т.е типо такого { "topics_indexed.index": 0, "topics_indexed.topic": '0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925'}
ㅤ
Привет чат
ㅤ
У меня ошибка с монго + питон
ㅤ
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ServerSelectionTimeoutError: cluster0.sgsv103.mongodb.net:27017: [Errno 11001] getaddrinfo failed, Timeout: 30s, Topology Description: <TopologyDescription id: ###############, topology_type: Unknown, servers: [<ServerDescription ('cluster0.sgsv103.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('cluster0.sgsv103.mongodb.net:27017: [Errno 11001] getaddrinfo failed')>]>
ㅤ
что то с инетом/кластер дохлый
import pymongo mongo = pymongo.MongoClient("mongodb://#######@cluster0.sgsv103.mongodb.net/?retryWrites=true&w=majority") db = mongo["mydatabase"]
ㅤ
Я хз
ㅤ
Я проверил
ㅤ
Anonymous
возможно не правильно url вписал
Anonymous
ну тогда не знаю. может комманды ннте
ㅤ
@client.command() async def profile(ctx): user_id = str(ctx.author.id) result = collection.find_one({"_id": user_id}) if result: money = result["money"] await ctx.send(f"{ctx.author.mention}, ваш баланс: {money} денег.") else: await ctx.send(f"{ctx.author.mention}, у вас еще нет профиля.") - код с инета
ㅤ
discord.py
Алексей
Всем привет) такой вопрос, есть массив id как по этим id найти пользователей в бд?)
Alexander
Всем привет) такой вопрос, есть массив id как по этим id найти пользователей в бд?)
Думаю, вам нужен оператор $in, если я правильно понял вопрос. Что-нибудь вроде: {userid: {$in: [id1, id2, id3]}
Алексей
Думаю, вам нужен оператор $in, если я правильно понял вопрос. Что-нибудь вроде: {userid: {$in: [id1, id2, id3]}
Похоже да, получается приходит массив айдишников и по этим айдишникам нужно найти пользователей в бд
Алексей
Думаю, вам нужен оператор $in, если я правильно понял вопрос. Что-нибудь вроде: {userid: {$in: [id1, id2, id3]}
Хотя я сделал просто через find({_id:arr}), он тоже отдает пользователей
Alexander
Хотя я сделал просто через find({_id:arr}), он тоже отдает пользователей
Это прямо неожиданно: test> db.coll.drop() true test> db.coll.insertMany([{a: 1}, {a: 2}, {a: 3}, {a: 4}, {a: 5}]) { acknowledged: true, insertedIds: { '0': ObjectId("641c05aa3e44e79125b1e069"), '1': ObjectId("641c05aa3e44e79125b1e06a"), '2': ObjectId("641c05aa3e44e79125b1e06b"), '3': ObjectId("641c05aa3e44e79125b1e06c"), '4': ObjectId("641c05aa3e44e79125b1e06d") } } test> db.coll.find({a: {$in: [2, 3]}}) [ { _id: ObjectId("641c05aa3e44e79125b1e06a"), a: 2 }, { _id: ObjectId("641c05aa3e44e79125b1e06b"), a: 3 } ] test> db.coll.find({a: [2, 3]}) test> db.coll.createIndex({a: 1}) a_1 test> db.coll.find({a: {$in: [2, 3]}}) [ { _id: ObjectId("641c05aa3e44e79125b1e06a"), a: 2 }, { _id: ObjectId("641c05aa3e44e79125b1e06b"), a: 3 } ] test> db.coll.find({a: [2, 3]}) test> Может, библиотека, которую вы используете, переписывает запрос на $in, если идет сравнение по массиву, но в этом случае она ломает семантику сравнения по массивам.
Alexander
То же самое с _id test> db.coll.find({_id: [ObjectId("641c05aa3e44e79125b1e06a"), ObjectId("641c05aa3e44e79125b1e06b")]}) test> db.coll.find({_id: {$in: [ObjectId("641c05aa3e44e79125b1e06a"), ObjectId("641c05aa3e44e79125b1e06b")]}}) [ { _id: ObjectId("641c05aa3e44e79125b1e06a"), a: 2 }, { _id: ObjectId("641c05aa3e44e79125b1e06b"), a: 3 } ]
Alexander
использую только mongoose, вот тут увидел пример, решил попробывать и все получилось, правда там по languages ищут
Там в примере указано, что languages - это массив, так что с ним все в порядке, там семантика сравнения по массивам
Alexander
Проблема в том, что если библиотека переписывает запросы вида на {languages: ["english", "german"]} на {languages: {$in: ["english", "german"]}}, то вместо документов, где указаны только "english" и "german", она вернет документы, где "english" или "german"
Alexander
Так и есть, и похоже они это делают более-менее грамотно, при условии, конечно, что никто не добавит записи не по схеме. https://mongoosejs.com/docs/tutorials/query_casting.html#implicit-in
Null
Почему компасу не нравится последняя запятая?
Дмитрий
Почему компасу не нравится последняя запятая?
Потому, что она предполагает наличие после неё элемента
Null
Потому, что она предполагает наличие после неё элемента
Да, но в то же время, в БД она уже есть...
Null
невалидный json
Это понятно Но почему?
Дмитрий
Дмитрий
Это понятно Но почему?
У вас не идёт после запятой элементов
Null
После неё идёт элемент _id
В обьектах js можно же как писать последнюю запятую так и не писать... Я думал, что у них одни правила
Дмитрий
В обьектах js можно же как писать последнюю запятую так и не писать... Я думал, что у них одни правила
Обратите внимание на то, что после последнего элемента которым является _id запятой не идёт
Null
Спасибо!
Constantin
Приветствую! Прошу помочь. Есть user model с полями usersFollowed и usersFollowing. Эти поля - массивы. usersFollowed - массив, который хранит id пользователей КОТОРЫЕ подписаны на пользователя. usersFollowing - массив, который хранит id пользователей НА которых подписан пользователь. Когда пользователь удаляет свою страницу, мне нужно найти всех юзеров, которые содержат в этих обоих полях id удаленного юзера и $pull (удалить) id удаленного юзера с этих массивов. Вот как я это реализовал и по какой то причине это не работает.
Constantin
Jakhongir
кто знает решение этой ошибки
dima shumov
кто знает решение этой ошибки
Клиент не может достучаться до сервера. Большего по этому сообщению не сказать. Проверь сетевую доступность монги
Constantin
Есть два массива с id пользователей. Нужно удалить id определенного пользователя с обоих массивов. Почему так как сделал я не работает???
Constantin
Прошу помочь!
Constantin
вот скрин по лучше и понятней где пишу логику
Taras
вот скрин по лучше и понятней где пишу логику
updateOne по логике должно быть, модель коллекции покажи
Constantin
updateOne по логике должно быть, модель коллекции покажи
мне уже в др чате подсказали . я походу нашел проблему
Constantin
благодврю!
Александр
Что это за магические квадратные скобки которые заставляют интерпретатор вычислять системные переменные? эта вычисляет время db.test.updateOne({ _id: 100 },[{ $set:{qwe:"$$NOW"}}]) а эта нет db.test.updateOne({ _id: 100 },{ $set:{qwe:"$$NOW"}})
Данил
привет ребят как указать тип, что массива с моделью Product в свойстве products? Мой вариант не сработал
Dmitry
привет ребят как указать тип, что массива с моделью Product в свойстве products? Мой вариант не сработал
У тебя там же _id хранится будут в массиве, поэтому надо указать в type: [mongoose.Schema.Types.ObjectId]
Aleksey
Всем привет Кто-то сталкивался/победил при clusterAuthMode: x509 : "Different user name was supplied to saslSupportedMechs","attr":{"error":{"code":17,"codeName":"Protoco lError","errmsg":"Attempt to switch database target during SASL authentication."
Alexandrr
Всем привет Кто-то сталкивался/победил при clusterAuthMode: x509 : "Different user name was supplied to saslSupportedMechs","attr":{"error":{"code":17,"codeName":"Protoco lError","errmsg":"Attempt to switch database target during SASL authentication."
список рекомендаций для решения ошибки "Different user name was supplied to saslSupportedMechs" при использовании режима аутентификации x509 в MongoDB: Проверьте правильность настроек аутентификации в конфигурации клиента MongoDB. Убедитесь, что вы используете правильные учетные данные пользователя, а также корректно указали имя базы данных аутентификации. Убедитесь, что настройки режима аутентификации x509 на сервере MongoDB сконфигурированы корректно. Например, убедитесь, что у вас есть правильный сертификат клиента и сервера, и что учетные данные пользователя настроены для аутентификации по сертификату. Проверьте, что база данных аутентификации, указанная в конфигурации клиента, совпадает с той, которая указана в конфигурации сервера MongoDB. Если вы используете роль администратора для подключения к кластеру MongoDB, проверьте, что вы используете правильные учетные данные администратора. Если все вышеперечисленное не помогло, обратитесь к журналам сервера MongoDB для поиска дополнительных подсказок относительно причины ошибки. Возможно, вам потребуется обратиться к документации MongoDB для получения дополнительной информации об использовании режима аутентификации x509 и о решении проблем с аутентификацией в MongoDB.
Aleksey
список рекомендаций для решения ошибки "Different user name was supplied to saslSupportedMechs" при использовании режима аутентификации x509 в MongoDB: Проверьте правильность настроек аутентификации в конфигурации клиента MongoDB. Убедитесь, что вы используете правильные учетные данные пользователя, а также корректно указали имя базы данных аутентификации. Убедитесь, что настройки режима аутентификации x509 на сервере MongoDB сконфигурированы корректно. Например, убедитесь, что у вас есть правильный сертификат клиента и сервера, и что учетные данные пользователя настроены для аутентификации по сертификату. Проверьте, что база данных аутентификации, указанная в конфигурации клиента, совпадает с той, которая указана в конфигурации сервера MongoDB. Если вы используете роль администратора для подключения к кластеру MongoDB, проверьте, что вы используете правильные учетные данные администратора. Если все вышеперечисленное не помогло, обратитесь к журналам сервера MongoDB для поиска дополнительных подсказок относительно причины ошибки. Возможно, вам потребуется обратиться к документации MongoDB для получения дополнительной информации об использовании режима аутентификации x509 и о решении проблем с аутентификацией в MongoDB.
Спасибо за ответ! Я немного не дописал, насколько я понимаюошибка для члена реплики, но следующей строкой: "Successfully authenticated"
Alexandrr
Спасибо за ответ! Я немного не дописал, насколько я понимаюошибка для члена реплики, но следующей строкой: "Successfully authenticated"
Если ошибка "Different user name was supplied to saslSupportedMechs" возникает только для члена реплики MongoDB, но при этом вы видите строку "Successfully authenticated" в логах, то, скорее всего, проблема связана с настройками аутентификации для данного члена реплики. Для решения этой проблемы вы можете проверить следующие настройки: Убедитесь, что настройки аутентификации для всех узлов реплики и клиентов MongoDB настроены одинаково и корректно. Проверьте, что вы используете правильные учетные данные пользователя для аутентификации на члене реплики MongoDB. Убедитесь, что база данных аутентификации, указанная в конфигурации члена реплики MongoDB, совпадает с той, которая указана в конфигурации клиента MongoDB. Проверьте, что ваши сертификаты клиента и сервера настроены правильно и соответствуют настройкам аутентификации на члене реплики MongoDB. Проверьте, что вы используете правильную версию MongoDB, которая поддерживает режим аутентификации x509. Если после проверки указанных выше настроек проблема не решена, проверьте журналы сервера MongoDB, чтобы получить дополнительную информацию о причинах ошибки.
Aleksey
Если ошибка "Different user name was supplied to saslSupportedMechs" возникает только для члена реплики MongoDB, но при этом вы видите строку "Successfully authenticated" в логах, то, скорее всего, проблема связана с настройками аутентификации для данного члена реплики. Для решения этой проблемы вы можете проверить следующие настройки: Убедитесь, что настройки аутентификации для всех узлов реплики и клиентов MongoDB настроены одинаково и корректно. Проверьте, что вы используете правильные учетные данные пользователя для аутентификации на члене реплики MongoDB. Убедитесь, что база данных аутентификации, указанная в конфигурации члена реплики MongoDB, совпадает с той, которая указана в конфигурации клиента MongoDB. Проверьте, что ваши сертификаты клиента и сервера настроены правильно и соответствуют настройкам аутентификации на члене реплики MongoDB. Проверьте, что вы используете правильную версию MongoDB, которая поддерживает режим аутентификации x509. Если после проверки указанных выше настроек проблема не решена, проверьте журналы сервера MongoDB, чтобы получить дополнительную информацию о причинах ошибки.
Убедитесь, что база данных аутентификации, указанная в конфигурации члена реплики MongoDB, совпадает с той, которая указана в конфигурации клиента MongoDB. Скорее всего тут ошибка, спасибо за помощь
Aleksey
))) Тут просто танцы с бубном, нужно коннекты к монге шифровать, а аутентификацию не ставить 509
yopp
Если ошибка "Different user name was supplied to saslSupportedMechs" возникает только для члена реплики MongoDB, но при этом вы видите строку "Successfully authenticated" в логах, то, скорее всего, проблема связана с настройками аутентификации для данного члена реплики. Для решения этой проблемы вы можете проверить следующие настройки: Убедитесь, что настройки аутентификации для всех узлов реплики и клиентов MongoDB настроены одинаково и корректно. Проверьте, что вы используете правильные учетные данные пользователя для аутентификации на члене реплики MongoDB. Убедитесь, что база данных аутентификации, указанная в конфигурации члена реплики MongoDB, совпадает с той, которая указана в конфигурации клиента MongoDB. Проверьте, что ваши сертификаты клиента и сервера настроены правильно и соответствуют настройкам аутентификации на члене реплики MongoDB. Проверьте, что вы используете правильную версию MongoDB, которая поддерживает режим аутентификации x509. Если после проверки указанных выше настроек проблема не решена, проверьте журналы сервера MongoDB, чтобы получить дополнительную информацию о причинах ошибки.
Пожалуйста, не используйте LLM для ответов в чате
Alexandrr
Пожалуйста, не используйте LLM для ответов в чате
так задача чата - помощь ищущим или иные цели преследуются?
Alexander
так задача чата - помощь ищущим или иные цели преследуются?
В том то и дело, что помочь, а не выбросить десяток-другой версий, которые не имеют отношения к проблеме
yopp
так задача чата - помощь ищущим или иные цели преследуются?
LLM достаточно легко «галлюцинируют» неверную информацию. Например ответы которые вы привели это набор общих слов, которые не содержат в себе информацию о том что нужно в первую очередь проверить сертификаты
Alexandrr
моё дело предложить, как говорится по крайней мере ответы, которые я давал раньше, в том числе со сложнейжими многосоставными запросами ребятам помогли, а мне в этом ллм помог
Null
6.0.5 (Mar 13) ◦ 5.0.15 (Feb 27) • 4.4.19 (Feb 27) • 4.2.24 (Feb 27) 🔥 Вышли версии 6.0.5, 5.0.15, 4.4.19 и 4.2.24 ⚠️ SERVER-74345: После обновления до версии 4.4.19, 5.0.15, 6.0.5, в случае если в mongod.conf присуствует fork: true то systemd не сможет запустить сервис. Необходимо удалить fork: true из mongodb.conf и запустить сервис повторно • Документация Stable: 6.0.5 (Mar 13) | 5.0.15 (Feb 27) Bugfix: 4.4.19 (Feb 27), Legacy: 4.2.24 (Feb 27, ☠️ Apr '23) ☠️ 4.0.28 (Apr '22), 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20)
Sergey
Как сделать запрос для проектов, чтобы вернуть целые объекты поле users а не только их id? (Node js, mongoose)? Project.find(); - возвращает как на картинке, можно ли сделать как я хочу одним запросом через параметры?
Tanya
ребят, привет! извините, что врываюсь, но может будет кому то интересно) Я ищу DBA noSQL в компанию Samokat.tech Проект крутой и высоконагруженный (более 30 млн. транзакций ежемесячно) - интеграционная платформа! В чем крутость? На рынке аналогов нет, собственная разработка с 2016 года, будет шанс прикоснуться к прекрасному) Из интересного: возможность с "нуля" выстроить архитектуру, полет фантазии не ограничиваем, но все в разумных пределах) вакансия сложная, ищу давно, очень надеюсь на понимание) по зп - открыты к обсуждению, не жмотимся, своих сотрудников ценим. писать мне, расскажу детали а еще, если ты админ postgresql, но смотришь в сторону mongo, то тоже пиши! готовы оплатить курсы))