Тим
eto klassno , rabotaet, no 2 deficita :) 1. on mne daet 1 result, no ya xochu vse dokumenti poluchit u kotorix est maks value. a onmne pokazivaet prosto maksValue. 2. on mne ne pokazivaet ostalnie field-i
понял? ты хотел максимум ты получил, захотел все максимумы делаешь поиск со значением которые ты получил МАХ
Bago
super. rabotaet shikarno.
Bago
spasibo ogromnoe!
Bago
)) ok)
Bago
spasibo eshe raz.
Тим
spasibo eshe raz.
на здоровье
Jasur Sharofiddinov
good afternoon, I have been confused about the full-text search in MongoDB. can we avoid frequency in searchScore? For example what I am searching: Voltage Results:{ "data": "Terminal voltage: The terminal voltage is the voltage of the generator busbar, "scores": 1.7183785438537598,} -- here the word voltage is occurring 3 times, so it is giving this result, but don't need this result What I wanted is: "data": "3.2.3. VOLTAGE", I checked https://stackoverflow.com/questions/43041494/mongodb-full-text-search-score-what-does-score-means, but i need to avoid from frequency, as it is showing more occurred result in my search. Who can help me?
Alena
mongoose + mongo + nodejs хочу чтобы при поиске по несуществующему полю в документе возвращало пустой объект, такое возможно? сейчас возвращает все документы
Nick
mongoose + mongo + nodejs хочу чтобы при поиске по несуществующему полю в документе возвращало пустой объект, такое возможно? сейчас возвращает все документы
Проверяйте условие, если под выборку ничего не попало то ничего и не выдаст, а у вас уже чтото выдает
Alena
Проверяйте условие, если под выборку ничего не попало то ничего и не выдаст, а у вас уже чтото выдает
когда в фильтре поля которые не существуют в схеме - выдает все документы
Daniil
когда в фильтре поля которые не существуют в схеме - выдает все документы
Есть подозрение, что монгуз фильтрует запрос, убирая из него те поля, что не указаны в схеме
Daniil
Можно попробовать вызвать тот же запрос, но добавить .lean(), это в чистом виде передаёт запрос
🐈KittenDEV | ChEcK BiO
монго поддерживает тип данных list? []
Null
монго поддерживает тип данных list? []
https://www.google.com/amp/s/data-flair.training/blogs/mongodb-data-types/amp/
Anonymous
Вячеслав
Добрый день. Указал индексируемые поля в FastAPI для MongoDB. Создался вот такой индекс
Вячеслав
Вячеслав
Такой же как и для поля sender
Вячеслав
Но дело в том что в sender у меня записывается строка, а в recipients массив
Вячеслав
Такой индекс подходит для массивов? Индекс мне необходим для более быстрого поиска значения в поле recipients моей коллекции
Кирилл
Всем доброго дня! Подскажите, как в Mongo в массиве вытащить порядковый номер каждого элемента? Задача заключается в том, чтобы для каждого элемента массива добавить новое поле с порядковым номером этого элемента. Например, если у нас есть документ: { "_id": 1, "arr": [ { "quantity": 2, "amount": 100 }, { "quantity": 4, "amount": 150 }, { "quantity": 5, "amount": 200 } ] } А получить необходимо такой документ: { "_id": 1, "arr": [ { "element_number": 1, "quantity": 2, "amount": 100 }, { "element_number": 2, "quantity": 4, "amount": 150 }, { "element_number": 3, "quantity": 5, "amount": 200 } ] }
yopp
Всем доброго дня! Подскажите, как в Mongo в массиве вытащить порядковый номер каждого элемента? Задача заключается в том, чтобы для каждого элемента массива добавить новое поле с порядковым номером этого элемента. Например, если у нас есть документ: { "_id": 1, "arr": [ { "quantity": 2, "amount": 100 }, { "quantity": 4, "amount": 150 }, { "quantity": 5, "amount": 200 } ] } А получить необходимо такой документ: { "_id": 1, "arr": [ { "element_number": 1, "quantity": 2, "amount": 100 }, { "element_number": 2, "quantity": 4, "amount": 150 }, { "element_number": 3, "quantity": 5, "amount": 200 } ] }
В update aggregation pipeline сделайте $map внутри которого для каждого элемента массива $indexOfArray а добавлением нового поля для вложенных документах https://docs.db-ai.co/docs/manual/tutorial/update-documents-with-aggregation-pipeline/ https://docs.db-ai.co/docs/manual/reference/operator/aggregation/map/ https://docs.db-ai.co/docs/manual/reference/operator/aggregation/indexOfArray/
Кирилл
В update aggregation pipeline сделайте $map внутри которого для каждого элемента массива $indexOfArray а добавлением нового поля для вложенных документах https://docs.db-ai.co/docs/manual/tutorial/update-documents-with-aggregation-pipeline/ https://docs.db-ai.co/docs/manual/reference/operator/aggregation/map/ https://docs.db-ai.co/docs/manual/reference/operator/aggregation/indexOfArray/
Спасибо! Получилось собрать вот такой пайплайн: db.test.aggregate( [ { $match:{"_id": 1} }, { $addFields: { "arr": { $map: { input: "$arr", as: "arr_element", in: { "quantity":"$$arr_element.quantity", "amount":"$$arr_element.amount", "element_number":{$indexOfArray:["$arr","$$arr_element"]} } } } } } ] ) В принципе он задачу выполняет, но может возможно без явного "пересобирания" документа в "in" по полям?
fs
привет всем, использую такую конструкцию для выборки: db.col.aggregate([{ $match: { 'foo': 'bar' } },{ $sample: { size: 1 } }]) все работает как надо, но как мне игнорировать одно или несколько вхождений? я пробовал так как ниже: db.col.aggregate([{ $match: { 'foo': 'bar', "data_id": { $ne: [ 123, 321 ] } } }, { $sample: { size: 1 } }]) Но это не работает, работает только если я в конструкции { $ne: 123 } передаю не список мне нужно игнорировтаь все записи где значение для data_id совпадает с некоторыми id
Валерий
можно попросить монгу определить наличие поля на любом уровне вложенности, поле динамическое, где оно находиться заранее не известно
Bohdan 🕊️
Атом, а как ты пишешь от имени сообщества?)
Null
Атом, а как ты пишешь от имени сообщества?)
Слева внизу видишь кружочек, где печатать текст? Нажми на него и поймёшь
Бобомурод
кто знает чаты по Prisma ?
Vova
кто знает чаты по Prisma ?
Без понятия что это но поищи тут @it_chats
Бобомурод
Без понятия что это но поищи тут @it_chats
а кто админит? тут нет ссылки на чат призмы но я нашел russian community хочу чтоб добавили в @it_chats
fenogentov
у меня есть поле "дата_время" и "статус" как получить последнюю запись в коллекции с заданным статусом?
fenogentov
рабатаю в Студио3Т копипащу запросы с монгодб сай и получаю ошибки где можно посмотреть орфорафию запросов для стидии?
fenogentov
"изучи стидию за 30 минут" видео не помогло
Yaroslav
Желательно, чтобы поле date, было типом ISODate
Yaroslav
Ну и индекс на поле status
Yaroslav
Для оптимизации поиска
Viktar
Добрый день, есть запрос db.personCatalog.find({simpleFirstName:"daniel", simpleLastName:"garvey", isDisabled:null, nationwideOrder:{$gt:0, $lte:20}}).limit(20) но он почему то игнорирует индекс { "v" : 2, "key" : { "simpleFirstName" : 1, "simpleLastName" : 1, "nationwideOrder" : 1, "isDisabled" : 1 }, "name" : "simpleFirstName_1_simpleLastName_1_nationwideOrder_1_isDisabled_1", "background" : true } использует индекс { "v" : 2, "key" : { "simpleFirstName" : 1, "simpleLastName" : 1, "state" : 1, "stateOrder" : 1 }, "name" : "simpleFirstName_1_simpleLastName_1_state_1_stateOrder_1", "background" : true },
Roman Khonichev
isDisabled:null, nationwideOrder поменять местами не помомает?
Murad
Подскажите как себя поведет монго если я создаю индексы через collection.createIndexes и один из индексов уже существует в коллекции под другим названием?
Viktar
isDisabled:null, nationwideOrder поменять местами не помомает?
нет. да и не имеет значения порядок.
Murad
Подскажите как себя поведет монго если я создаю индексы через collection.createIndexes и один из индексов уже существует в коллекции под другим названием?
У меня почему то локально все окей когда я создаю уже существующий индекс (монго ничего не пересоздает), но на стейдж сервере приходит ошибка...
Александр
Коллеги доброго дня подскажите пожалуйсат какое условие использовать у меня форма регистраци там email и пароль вот мне нужно найти пользователя по email, в mongoose не могу найти этого
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ
collection.find_one({'email': value}) Сохраняешь в переменную и вуаля
Andrey
Помощь нужна, сам пока не могу осилить: Выполняю aggregate с такими stages [{'$match':}, {'$limit':}, {'$project':{}}, {'$group': {'_id': '$name', 'records': {'$push': '$$ROOT'}}}, {'$sort': {}}] Записей от 400 тысяч, хочу выгрузить данные для записи в файл, получаю ошибку: $push used too much memory and cannot spill to disk. Memory limit: 104857600 bytes, full error: {'ok': 0.0, 'errmsg': '$push used too much memory and cannot spill to disk. Memory limit: 104857600 bytes', 'code': 146, 'codeName': 'ExceededMemoryLimit'} Видимо надо как-что pagination сделать. Везде пишут про $facet - но он с ним такой запрос(например) {$match: {'need_field':134744}}, {$sort: {'_id': 1}}, {$facet : { data: [ { $skip: 0 }, { $limit: 5000 } ] } } ]) - невозможно дождаться исполнения. Кто сталкивался с ошибой и как делается pages с агрегацией.
Andrey
Используйте allowDiskUse : true
не помогает, использую
Viktar
не помогает, использую
А скиньте полностью агрегацию. Ошибка типичная без использования диска
Andrey
А скиньте полностью агрегацию. Ошибка типичная без использования диска
[{ '$match': { 'need_field': 134744 } }, { '$limit': 1000000 }, { '$project': { 'newname': { '$concat': ['$name', '.', '$suf'] }, 'last': { '$max': '$ds' }, 'first': { '$min': '$ds' }, 'v': 1, '_id': 0 } }, { '$group': { '_id': '$newname', 'records': { '$push': '$$ROOT' } } }, { '$sort': { 'need_key_indexed': 1 } }] а allowDiskUse - отдельно из кода
Viktar
Меня как раз интересовало как вы прописывает allowDiskUse
Andrey
Andrey
Andrey
в аргументам на allowDiskUse приходит True
Andrey
Меня как раз интересовало как вы прописывает allowDiskUse
в логах базы точно видно, что используется allowDiskUse
Andrey
на батчи нужно переделать
Как «руками» формировать батчи через page по блоками id -шек, я понимаю, но хотелось совсем правильно
Vladyslav
Если честно, тут не понимаю
вместо тянуть фулл таблицу - делаешь: 1) получаешь количество элементов в таблице. 2) делаешь batchsize = 100, делишь 1 пункт на batchsize и получаешь количество страниц; 3) запускешь итерацию по страницам и записываешь результаты в файл
Andrey
Как batchSize позволит самой монге выполнить stage, я не очень понимаю, как будет выглядеть aggregate
Vladyslav
Andrey
тебе нужен skip i limit это и ограничит количество результатов
а не получится ли так, что монга под капотом считает N раз теже данные, сколько раз условно будет скипать n записей
Andrey
опять же, в если последнем stage есть группировка - то такой вариант - не работает, потому как записи могут быть в начале одни, а из последней страницы - они не попадут в группу которые были считаны первый раз
Vladyslav
опять же, в если последнем stage есть группировка - то такой вариант - не работает, потому как записи могут быть в начале одни, а из последней страницы - они не попадут в группу которые были считаны первый раз
твое решение все равно в корне не верно, так как ты всегда вывалишься по нехватке памяти и тебе прийдется юзать skip, limit - так что можешь переделывать)
Vladyslav
опять же, в если последнем stage есть группировка - то такой вариант - не работает, потому как записи могут быть в начале одни, а из последней страницы - они не попадут в группу которые были считаны первый раз
тут также стоит подумать о другом подходе: мб тебе вообще не нужно читать всю бд, а получить distinct $name, а потом просто запустить цикл, который сделает группировку по 1 значению и вернет что тебе нужно. Также можешь протестить другие подходы