Roman
вот есть запрос на обновление документов, у каждого документа есть поле parentId, мне нужно его значение добавить в массив parentIds
Roman
я так понял такое нельзя сделать?
Bogdan
без find добавить значение поля документа в массив
aggregation $push + вывод результата в другую (временную) коллекцию через $out (если нужно)
Roman
спасибо
Delonge1
Не подскажете,почему куки могут быть пустыми,я кладу туда refreshToken,но когда хочу его достать,там пусто
Delonge1
Delonge1
Yaroslav
А что лучше: totalKeysExamined: 14653, totalDocsExamined: 8107, Или: totalKeysExamined: 9337, totalDocsExamined: 9337,
Я бы считал, что то что быстрей то и лучше. Индекс компактнее коллекции, поэтому читать indexkeys дешевле. Поэтому моя гипотеза что первое работать будет быстрей, проверьте
Alexey
ребят. решил поработать с монгой. столкнулся с проблемой лимита строки
Alexey
как решаете эту пробему?
Alexey
нашел решение где строку делят на чанки
Alexey
может существует чтото лучше?
yopp
ребят. решил поработать с монгой. столкнулся с проблемой лимита строки
В bson строка ограничена размером документа. Для fixed length строки ограничение 2^32 байт, для null-terminated его нет
yopp
А размер документа 16мб
Alexey
то есть мне придется для работы с большими документами из документоориентированной бд делать реляционную. это то как я понял. поправте если я не прав
Nick
ребят. решил поработать с монгой. столкнулся с проблемой лимита строки
нужно сначала термины подбить, для вас строка это стринговое поле в документе или чтото другое?
Anton
Не сталкивались вы ли с тем, что compound индекс построенный для запроса без фильтрации по явным поле-значение (а не по диапазону) не работает. Уже как только не переставлял, и сначала фильтры затем сортировка, и наоборот, все равно шерстит все документы в коллекции. Может знаете в каком порядке построить для такого запроса compound?
Anton
А как у вас выглядит индекс?
Такой тоже шерстит все N доков аналогично
Anton
А что показывает explain({executionStats:1})?
"totalKeysExamined": 85226, "totalDocsExamined": 85226, Индекс используется, тк есть в "indexName"
yopp
"totalKeysExamined": 85226, "totalDocsExamined": 85226, Индекс используется, тк есть в "indexName"
Выложите, пожалуйста, статистику исполнения плана запроса, например на gist.github.com
yopp
"totalKeysExamined": 85226, "totalDocsExamined": 85226, Индекс используется, тк есть в "indexName"
А сколько у вас документов в коллекции? Странно что shape везде Min...Max
Anton
А сколько у вас документов в коллекции? Странно что shape везде Min...Max
85200 доков Я похоже нашел ошибку, сейчас проверю, спасибо за содействие!
Anton
А сколько у вас документов в коллекции? Странно что shape везде Min...Max
Да, в общем, поля у меня не такие простые а длинные (с dot нотацией), а для примера сюда я вставлял другие названия В индексе забыл исправить и он строил по несуществующему полю
Anton
Все получилось!
Vlad
Всем привет!
Vlad
Кто работал с AdminBro?
Mike
Привет, не подскажете, у меня есть вложенная структура типа книга авторы я могу одного автора удать по uid типа db.books.deleteOne({ _id: ObjectId("5ea53fedaa79db20d4e14284") })
Mike
или нужно db.books.authors.deleteOne({ _id: ObjectId("5ea53fedaa79db20d4e14284") })
Konstantin
все привет
Konstantin
кто-нибудь делал тг бота с подлюченной базой mongodb
Konstantin
идеально было бы если питон
Semeon
Могу посоветовать чат по Ноде
Semeon
Там тебе могут подсказать
Semeon
Но это Нода )
Konstantin
буду благодарен
Ardasher
кто-нибудь делал тг бота с подлюченной базой mongodb
https://github.com/goq/telegram-list по моему тут и python есть
Roman
Вопрос на засыпку. Есть схема коллекции assignedUserId: { ref: 'users', type: Schema.Types.ObjectId, default: null }, folderId: { ref: 'folders', type: Schema.Types.ObjectId, default: null } Добавляю я значит документ в эту схему и оставляю оба этих поля пустыми в форме. Так вот, с полем assignedUserId все в порядке, а вот если оставить пустым поле folderId то вылетает ошибка "Cast to ObjectId failed for value \"\" at path \"folderId\" for model \"documents\"". Т.е. якобы он неможет пустую строку преобразовать в ObjectId. Почему тогда с полем assignedUserId прокатывает?
Roman
окей, с assignedUserId тоже не прокатило как выяснилось, как тогда правильно в схеме тип указать? просто String чтоли?
(USMON)$
Привет
Roman
у вас пишет что значение есть и оно равно пустой строке "", значит надо ансетить либо выставлять явно нулл
Странно, но сейчас протестил еще раз, и опять вылазиет эта ошибка, хотя я уже прописал, что если строка пустая, то присовить null
Dmitry
Добрый день. Mongoose. 3 часа вожусь... В чём может быть причина? Задача: к текущему значению прибавить/отнять число от результата функции $subtract
Dmitry
Dmitry
(node:14448) UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "[ 5, 2 ]" at path "points"
Alexey
Привет всем! Понимаю, что вопрос в духе реляционных БД, но все таки... Можно ли как-то построить двухуровневый или вложенный запрос к коллекции при использовании полнотекстового поиска? Дело в том, что искомая строка состоит из двух частей, одна из которых встречается во многих миллионах документов, а вот вторая - максимум в паре сотен. И я бы хотел найти сначала все документы, в которых встречается вторая часть, а после уже среди результата выборки искать по обеим частям, иначе поиск работает очень медленно.
Vadym
Добрый вечер, вопрос про $add. Почему $add[1, 2, null, 4] возвращает null? Как сделать чтобы null игнорировался? Вариант с ifNull(x, 0) не подходит, так как нужно различать $add[null, null] и $add[0,null].
Riclud
Добрый день, как указать несколько типов ?
Artem
Юзаю mongoose. Если я уже нашел нужный документ через findOneAndUpdate, я могу после этого использовать полученный объект, чтоб изменить документ в базе и не искать его заново?
Mykola 🤷🏼‍♀️
Можно исопльзовать update пайплайны https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/
почему же. Можно модифицировать полученный объект и вызвать await model.save()
Artem
почему же. Можно модифицировать полученный объект и вызвать await model.save()
Он сохраняет все модификации в документах модели? Спасибо, вроде, то что надо. Вопрос только что быстрее - найти и обновить заново или .save
Artem
под капотом одно и то же
Но сохранять будет всё, а так только одно. Или я чего-то не понимаю?)
Artem
что значит «всё»?
Документ в базе не один. Как он поймет что именно было изменено? Как вообще .save понимает, что ему сохранять? У него не внутри себя же список отдаваемых объектов..
Mykola 🤷🏼‍♀️
Документ в базе не один. Как он поймет что именно было изменено? Как вообще .save понимает, что ему сохранять? У него не внутри себя же список отдаваемых объектов..
const record = await recordModel.findOneAndUpdate(query, modifier); record.newField = 'value'; record.secondField = 'value2'; await record.save() Вот на моменте record.save() в рекорде уже есть _id, по которому и будет сделан апдейт
Artem
Тогда вопрос отпал. Спасибо
Mykola 🤷🏼‍♀️
Viktar
Добрый день, подскажите, как можно посмотреть статистику используемых индексов. Может есть какой то функционал, что бы понять каких индексов не хватает?
Petr
Кто нибудь пользовался mongo-kafka, почему то дельту между перезапусками не перечитывает и теряет эту часть, может что не явно настроить нужно?