Dm
Эмм, а зачем это тут ?) Вы на MongoDB работаете ?)))
Андрей
Эмм, а зачем это тут ?) Вы на MongoDB работаете ?)))
Это бот, который только что в группе появился, и его не банят.
Lestat
коллеги, спасибо вам большое!
Anonymous
Это бот, который только что в группе появился, и его не банят.
Подключили бы сюда бота который банил бы по N-ому количеству просьб от участников группы, на такой случай, когда нет админа.
Lestat
будем апгрейдиться, на 4.4 всё ок заходит
Dm
будем апгрейдиться, на 4.4 всё ок заходит
Да, мы это уже прошли, там не сложно))
Philipp
Ребят, а как называется захват переменных из фильтра? Допустим у меня есть документ как на скрине, в нём массив Files, в каждом элементе которого может быть подмассив DerivedFiles. Если я хочу в каком-нибудь элементе Files изменить поле Revision, я могу, даже не знаю как назвать, захватить индекс нужного элемента из фильтра для использования в команде '$set'. Сейчас ещё два скрина приложу. А как установить поле в элементе подмассива элемента массива?
Philipp
Вот так работает для первого уровня вложенности.
Philipp
Есть возможность сделать это как-то так?
Philipp
Но, как я понял, это именно вопрос к синтаксису запросов монго, а не к реализации. Или я не прав?
Dm
Но, как я понял, это именно вопрос к синтаксису запросов монго, а не к реализации. Или я не прав?
Пока вообще не понятна задача, советую сформулировать её более точно. (Давая ответ на вопрос, что требуется от MongoDB?) [Вы про операцию update ?]
Philipp
Пока вообще не понятна задача, советую сформулировать её более точно. (Давая ответ на вопрос, что требуется от MongoDB?) [Вы про операцию update ?]
Это как всегда, уверен, что даже название кто-нибудь из психологов придумал уже. Когда что-то известное и понятное тебе, ты экстраполируешь на собеседников... Да, я про update.
Dm
Есть возможность сделать это как-то так?
То есть хотите обновить значения вообще всех полей с названием Revision во всех абсолютно тегах ? Или какое-то определённое ? Если определённое, то есть же возможность обратиться по индексу, типа: Files.1.DerivedFiles.1.Revision либо тот же let заюзить https://www.mongodb.com/docs/manual/reference/method/db.collection.update/#std-label-db.collection.update-let-syntax
Philipp
То есть хотите обновить значения вообще всех полей с названием Revision во всех абсолютно тегах ? Или какое-то определённое ? Если определённое, то есть же возможность обратиться по индексу, типа: Files.1.DerivedFiles.1.Revision либо тот же let заюзить https://www.mongodb.com/docs/manual/reference/method/db.collection.update/#std-label-db.collection.update-let-syntax
Нет, не во всех, в одном. К примеру, при использовании $set я могу указать вместо явного индекса массива символ $: {'$set': {'Files.$.Revision': 42}}, как я понял, это возможно только при наличии в фильтре дополнительного условия: {'_id': project_id, 'Files.Id': file_id} вот этого самого Files.Id. Вопрос в том, есть ли что-то подобноe? {'$set': {'Files.$.DerivedFiles.$.Revision': 42}}
Дмитрий
Всем привет!👋🏻 Такой вопрос: Кто-нибудь использует MongoDB 5 версии ?
Philipp
Как связаны "Files.$" и "Files.Id" ?
Видимо я не понимаю, как это работает. Я думал, что подобные вещи это нечто свойственное MongoDB "из коробки". Подобный синтаксис я нашёл здесь и он работает:https://stackoverflow.com/a/20262570/7751880
Dm
Видимо я не понимаю, как это работает. Я думал, что подобные вещи это нечто свойственное MongoDB "из коробки". Подобный синтаксис я нашёл здесь и он работает:https://stackoverflow.com/a/20262570/7751880
А вы много данных собираетесь обновлять ? Ну типа объём известен? Если не много, то может быть вам foreach заюизть ? https://www.mongodb.com/docs/manual/reference/method/cursor.forEach/
Kос
Привет, подскажите, пожалуйста, как вставить документ, в котором есть дата с указанием нужной таймзоны? Сейчас вставляется локальное время, а мне нужно вставлять время определенной тайм зоны (конкретно America/New_York)
Vitalii
Здравствуйте, у меня есть массив объектов, как мне получить только часть массива выбирая по полю date?
Vitalii
и там ещё нужен $regex потому что date это строка в ISO формате
Cloud
и не нужен там regex
Vitalii
array.filter
я хочу чтобы с mongo мне пришел уже отфильтрованый результат
Cloud
так извиняюсь чат попутал
Cloud
а поч у тебя дата лежит исо строкой в базе?
Vitalii
а поч у тебя дата лежит исо строкой в базе?
потому что надо фильтровать по дате в часовом поясе пользователя
Vitalii
а этого нельзя делать?
Cloud
и какой у тебя яп?
Vitalii
переформулируй задачу
короче дата записи в UTC чтобы потом преобразовать к часовому поясу пользователя, часовой пояс может меняться
Vitalii
давай ты нормально все таки сформулируешь задачу
пользователь делает запись, потом надо показывать время когда он её сделал
Vitalii
давай ты нормально все таки сформулируешь задачу
Да и какая разница ИСО или не ИСО, возможно отфильтровать массив на стороне бд?
Nick
я хочу чтобы с mongo мне пришел уже отфильтрованый результат
агрегация с $filter, а дату можно кастануть через $toDate из строки в тип даты и уже работать с ней для сравнений
Google
Всем привет можете помочь как фильтровать с базы Mongodb - datePayment надо вывести только который оплата старше 30 дней - так не получается вывести поподает другие даты
Google
Google
🆘
Hunter
Но почему не 100 ,а 1000
Tony
Но почему не 100 ,а 1000
Миллисекунда это 1 тысячная
Tony
Не сотая
Hunter
А ой😅
Evgeniy
Всем привет. Подскажите пожалуйста, как решить проблему - есть значения ключей в БД на русском языке. При попытке db.users.find({city:'Москва'}).count() - не работает. Через консоль, точнее, возвращается подсчёт, а когда пытаюсь в Python скрипте вывести - не хочет. Со значениями на англ прекрасно работает
Dm
"когда пытаюсь в Python скрипте вывести" - проверьте кодировку Python скрипта. а про collation - db.users.find({city:'Москва'}).collation( { locale: "ru_RU", strength: 1 } ).count()
Evgeniy
даже не проверьте, а установите её в UTF-8 )))
принимает не ru_RU, а просто ru. а UTF-8 не принимает. В итоге, пока не заработало)
Dm
принимает не ru_RU, а просто ru. а UTF-8 не принимает. В итоге, пока не заработало)
UTF-8 - это кодировка, её не нужно передавать в collation, в locale. Её нужно установить файлу скрипта на Python.
Dm
У вас файл скрипта есть ?
Evgeniy
Да
Dm
В какой кодировке там данные ?
Dm
Откройте его Notepad++ например
Dm
и посмотрите справа внизу
Dm
что будет написано
Evgeniy
UTF-8 там
Dm
Тогда удалите оттуда 'Москва' и сами с клавиатуры напишите "Москва" и попробуйте запустить
Evgeniy
пробовал
Dm
скрипт в студию
Evgeniy
Evgeniy
Писал не я, мне просто необходимо вывести это в ТГ бота, и пока не добавляю вывод по городу - всё работает
Evgeniy
пробовал так же count по именам людей (тоже кириллица) , и тоже не срабатывает
Storm
Извините если не по теме. Если с помощью postman через localhost проверяд ендпойнты, а теперь надо через ссылку на созданную мною базу данных, то что писал в постмане (там где ранее был локалхост)?
Дмитрий
У меня вот так работает: from pymongo import MongoClient client = MongoClient('localhost', 27017) print(client["db_name"].collection_name.find({'city':'Москва'}).count())
Дмитрий
а у вас должно вот так работать: from pymongo import MongoClient client = MongoClient('localhost', 27017) print(client["kovalskayaDating"].users.find({'city':'Москва'}).count())
Evgeniy
А результат какой ?
В консоли работает, а ТГ бот падает - даже на /start не реагирует, а статистика должна вылазить на /stat. Сам скрипт находится на сервере, как ошибку с него посмотреть я не знаю