Александр
для места в топе приходиться кешировать всех 16 миллионов уникальных ид-шников отсортированных по количеству нахождений в каждом массиве members, это ужасно, я уже всю голову сломал как сделать лучше и быстрее, может кто знает?
Александр
Александр
Александр
Может кому будет не понятно, вот вам пример:
data:
[{
chatId: 1,
members: [12]
},
{
chatId: 2
members: [ 12, 22]
}]
результат getTopPosition({id: 12}):
{
id: 12,
position: 1 // найден в 2 чатах
}
результат getTopPosition({id: 22}):
{
id: 22,
position: 2 // найден в 1 чате
}
Sergey spbsite
Sergey spbsite
там лучше от редхатов брать для монги
Sergey spbsite
перфоманс - даже в доке написано
Александр
Sergey spbsite
всм
файловая система где стоит монга
Sergey spbsite
какая?
Sergey spbsite
ext4? тогда эт плохо
Александр
Sergey spbsite
не знаю, не смотрел
https://www.mongodb.com/blog/post/performance-best-practices-hardware-and-os-configuration
Sergey spbsite
Use XFS File Systems; Avoid EXT4
Use of XFS is strongly recommended to avoid performance issues that have been observed when using EXT4 with WiredTiger.
Nick
Rustam
Привет! Пользуюсь Mongodb недавно подскажите как получить коллекцию db.system.profile в json файл например?
сейчас делаю так, но там так же мусор из stdout
mongosh "длиннаяСтрокаДляПодключенияКБд" —file ''script.js' > result.json
В самом скрипте прописано какие поля забрать из профиля.
Вытаскиваю данные из pipeline.$match
Rustam
думается лучший путь использовать клиент для монги и делать query вроде db.system.profile.find( ... )
подскажите куда копать?
Alexandrr
Rustam
Easy Rider
Easy Rider
Тут сказано что C# хранит время не так как надо
Easy Rider
а что такое драйвер?
Андрей
Элементы - документы? 🤨 Да - ттл индекс как правильно подкинул Александр
yopp
.
import datetime
def decode(oid):
    if len(oid) != 24:
        print("Error: Invalid ObjectId")
        return None
    out = {}
    out['oid'] = oid
    out['ets'] = int(oid[0:8], 16)
    out['mid'] = int(oid[8:14], 16)
    out['pid'] = int(oid[14:18], 16)
    out['uid'] = int(oid[18:], 16)
    try:
        out['fts'] = datetime.datetime.fromtimestamp(out['ets']).strftime('%d %b %Y %H:%M:%S')
    except:
        print("Error: Invalid timestamp")
    return out
decoded_id = decode('645bca35f7424eb305fc385c')
print(decoded_id)
Кто знал ето как код
yopp
yopp
Отдельно отмечу: «иди читай доку» или «погугли» — токсичное поведение и будет наказываться.
Если вы знаете где в документации есть ответ на заданный вопрос — дайте ссылку на конкретный раздел документации и если требуется прокомментируйте на что именно стоит обратить внимание.
Если вы заметили что в группе кто-то грубит, напишите мне или @yatoba, мы разберёмся
Rustam
yopp
Да, mongoexport и mongodump не поддерживают скрипты
Не помню в каком формте mongosh по-умолчанию десериализует структуры для вывода. Возможно там будут невалидные в json токены типа ObjectId(...), DateTime(...) и пр.
Делать это в отдельном js скрипте и писать из него файл наверное наиболее надёжное решение, так как вы можете контроллировать формат вывода
anatoly
Люди, только вчера начал переходить с скл на монго и наткнулся на одну штуку с "преобразованием" ответа в json
я могу где-нибудь на уровне схемы указать монге что я хочу получать любой ответ с бд в виде жсона? меня и user = user.toJSON() устраивает но может есть решение обойтись без лишней строчки
Mashxurbek
.
object_id=('645bd555515a0b5033aaf209')
Кто знал ето как справочник
wisp
можете поделиться запросом, который возвращает случайный документ из коллекции? или без помощи ЯП тут никак?
Nick
wisp
благодарю
Андрей
Кто-то использует для мониторинга шаблон MongoDB из поставки Заббикс 6?
Adolf
Андрей
Использует
Написал в личку. Сталкивались с таким?
Комёб
Друзь привет! А можно ли запустить MongoDB в локальном сервере?
Комёб
Nick
Комёб
Александр «3OD1AK»
Привет!
Ошибка с тем, что я из базы данных пытаюсь получить список access (скрин 1), Как я это делаю и что получаю в консоли - скрин 2 и 3. Потом я вывожу в консоль все ключи из того же club.access в консоль - скрин 4, но получаю все access без role (скрин 5).
До этого я удалил из базы данных это поле (код - скрин 6), но почему-то оно удалилось неправильно и возвращаемся к началу вопроса — поле 'role' отображается в 1 console.log и не отображается во 2 console log. я не понимаю почему. Не подскажете?
Александр «3OD1AK»
Александр «3OD1AK»
Александр «3OD1AK»
Александр «3OD1AK»
Александр «3OD1AK»
Александр «3OD1AK»
И если я не по адресу, не подскажете чатик, куда этот вопрос можно задать?
Nick
Эска
Таким способом добавил в объект в документ коллекции ещё одно поле, а удалить role не очень правильно получилось... :(
Либо я че-то не так делаю.
Nick
Nick
Назар
Всем привет. Такой вопрос. Есть Первая база монго. Нужно сделать вторую, и чтоб когда в первую что то пишут вторая была синхронизированна. Но не наоборот. И при этом, если вторая некоторое время недоступна, чтоб после этого все упущенные изменения применились. Какие есть варианты?
Андрей
Назар
Андрей
репликация. Я имел ввиду 2 сервера отдельных нужно.
Вендорская кластер -> кластер реплика. https://www.mongodb.com/products/cluster-to-cluster-sync
Оракловые золотые ворота.
Кафка/кролик. Пиши в очередь, разгребай в обе базы отдельно. Стопнется монга - очередь насосётся, поднимется - рассосётся.
Nik
Подскажите плз ребят. Есть вот такая структура документа в Mongo
class Config:
schema_extra = {
"example": {
'title': 'Name of project',
'description': 'About project',
'destination_to_metro': 1,
'name_of_metro_station': 'Name of metro station',
'delivery_date': {
'year': 2023,
'quartal': 1
},
'flats': [
{
'flat_id': 1,
'status': 'on_sale',
'price': 10000000,
'space_m2': 100,
'number_of_living_rooms': 2,
'floor': 1,
'white_key': True
}
]
}
}
Можно ли как то написать запрос чтобы выбирать квартыры из всех документов по заданным фильтрам или нужно выносить квартиры в отдельный документ?
Нужно что бы отдавал просто список квартир
[{
'flat_id': 1,
'status': 'on_sale',
'price': 10000000,
'space_m2': 100,
'number_of_living_rooms': 2,
'floor': 1,
'white_key': True
}]
Artem
привет, читаю о том как засейвить данные в базу при завершении процесса ноды. Путем отлова выхода из процесса, тут окей, передали туда колбэк - окей.
Но что за прикол с тем, что процесс получает сигнал о завершении, и запускает твой колбэк, и тебе надо успеть его выполнить до того как процесс завершился (а он уже получил сигнал о завершении), это условно рулетка:
повезло - успел сохранить
не повезло - не успел сохранить ?)
Nick
Подскажите плз ребят. Есть вот такая структура документа в Mongo
class Config:
schema_extra = {
"example": {
'title': 'Name of project',
'description': 'About project',
'destination_to_metro': 1,
'name_of_metro_station': 'Name of metro station',
'delivery_date': {
'year': 2023,
'quartal': 1
},
'flats': [
{
'flat_id': 1,
'status': 'on_sale',
'price': 10000000,
'space_m2': 100,
'number_of_living_rooms': 2,
'floor': 1,
'white_key': True
}
]
}
}
Можно ли как то написать запрос чтобы выбирать квартыры из всех документов по заданным фильтрам или нужно выносить квартиры в отдельный документ?
Нужно что бы отдавал просто список квартир
[{
'flat_id': 1,
'status': 'on_sale',
'price': 10000000,
'space_m2': 100,
'number_of_living_rooms': 2,
'floor': 1,
'white_key': True
}]
в агрегации сначала в $match общее условие для выборки подходящий доков с квартирами, потом $filter для отфильтровывания содержимого конкретного массива квартир и потом если надо через $unwind + $project дял поулчения в выдаче один док=одна квартира
Nick
Artem
скорее не закрываю риски, а при отключении/краше (ну мало-ли) сервиса, допустим необходимо оповестить группу клиентов о том, что сервис временно недоступен и записать некоторые данные в базу)
Nick
Artem
а если опустить запись данных, а оставить "надо разослать оповещения о приостановке" ?
Nick
а просто краш вы тоже хотите покрыть?
Artem
если он отдает перед закрытием сигнал и статус код ( а он отдает, насколько я понимаю) то, думаю, да
Nick
и обычно клиент просто видит 500/404/таймаут и сам понимает что сервис не работает
Artem
при ошибках не отдает статус-код и сигнал завершения ?
Artem
да, понял, exit не отработает, а вот uncaughtException... )
Nick
конечно, краш с сегфолтом в лучшем случае в системном логе хоста пропишется, больше вариантов узнать об этом никак не поулчится (ну если мониторинга нет)). Аналогично потеря питания на хосте
Artem
угу, это понял
Artem
а допустим остановку процесса для обновления, если рассмотрим ?
Artem
или тех.работы
Artem
тут же сигнал явно пройти должен