Тим
Bago
super. rabotaet shikarno.
Bago
Bago
spasibo ogromnoe!
Тим
Bago
)) ok)
Bago
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?
Albert
Alena
mongoose + mongo + nodejs хочу чтобы при поиске по несуществующему полю в документе возвращало пустой объект, такое возможно? сейчас возвращает все документы
Nick
Alena
Nick
Daniil
Можно попробовать вызвать тот же запрос, но добавить .lean(), это в чистом виде передаёт запрос
Anonymous
🐈KittenDEV | ChEcK BiO
монго поддерживает тип данных list? []
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
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/
yopp
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
Кирилл
Валерий
можно попросить монгу определить наличие поля на любом уровне вложенности, поле динамическое, где оно находиться заранее не известно
Andrey
Bohdan 🕊️
Атом, а как ты пишешь от имени сообщества?)
Бобомурод
кто знает чаты по Prisma ?
Бобомурод
Vova
fenogentov
у меня есть поле "дата_время" и "статус"
как получить последнюю запись в коллекции с заданным статусом?
fenogentov
рабатаю в Студио3Т
копипащу запросы с монгодб сай и получаю ошибки
где можно посмотреть орфорафию запросов для стидии?
fenogentov
"изучи стидию за 30 минут" видео не помогло
Yaroslav
Yaroslav
Желательно, чтобы поле date, было типом ISODate
Yaroslav
Ну и индекс на поле status
Yaroslav
Для оптимизации поиска
Vladyslav
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
Murad
Александр
Коллеги доброго дня подскажите пожалуйсат какое условие использовать у меня форма регистраци там 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 с агрегацией.
Viktar
Помощь нужна, сам пока не могу осилить:
Выполняю 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 с агрегацией.
Используйте allowDiskUse : true
Andrey
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
Vladyslav
Помощь нужна, сам пока не могу осилить:
Выполняю 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
на батчи нужно переделать
Как «руками» формировать батчи через page по блоками id -шек, я понимаю, но хотелось совсем правильно
Vladyslav
Andrey
Vladyslav
Если честно, тут не понимаю
вместо тянуть фулл таблицу - делаешь:
1) получаешь количество элементов в таблице.
2) делаешь batchsize = 100, делишь 1 пункт на batchsize и получаешь количество страниц;
3) запускешь итерацию по страницам и записываешь результаты в файл
Andrey
Vladyslav
Andrey
Как batchSize позволит самой монге выполнить stage, я не очень понимаю, как будет выглядеть aggregate
Vladyslav
Andrey
опять же, в если последнем stage есть группировка - то такой вариант - не работает, потому как записи могут быть в начале одни, а из последней страницы - они не попадут в группу которые были считаны первый раз
Vladyslav