Aryn
Kirill
Ну ты так и сделал)
Aryn
Блин, как же классно, что можно так сделать:
Вывод:
20:42:35, 08/09/2021
Bogdan
Подскажите, что лучше:
1. Множество документов
2. Либо 1 документ и в нём массив данных?
В вашем примере нет правильного варианта использования, смотря как вы будете потом использовать данные. Проще хранить отдельно и по айди пользователя делать выборку покупок, проще фильтровать покупки, сортировать. Если хранить массивом эти значение, на управление может уходить много ресурсов, обычно в массивах хранят те данные, которые редко или никогда не обновляются.
Vadim
Всем привет!
Я пользую mongoose, у меня есть две схемы.
serviceSchema = {
profiles: { type: Schema.Types.ObjectId, ref: 'channel' },
}
+channelSchema
Мне нужно делать проверку перед удалением шаблона канала из коллекций каналов, не используется ли он в ref. для сервисной схемы.
Может быть есть встроенная защита от удаления связанных коллекций?
Михаил
Vadim
А еще такой вопрос в связи с этим.
Как запрос для вложенного элемента массива сделать
Вложенность такая,
templates: [{
audio: ref.Object.id
}]
Vadim
Vadim
Dmytro
всем привет
Dmytro
нужна консультация по архитектуре
Михаил
Dmytro
с кем можно было бы обсудить работу с большими данными?
Vadim
Andrey
Dmytro
/stat@combot
Dmytro
Andrey
Denis
Dmytro
я бы созвонился по возможности, т.к. проблема сложная
Всем салют) подскажите как предоставить удаленный доступ к БД.
Смысл такой: у меня контейнер внутри него Mongo который монтирует базу за пределы контейнера в директорию linux. По итогу в этой папке файлы с расширением .wt
Я правильно понимаю чтобы предоставить удаленный доступ к этим файлам с возможностью взаимодействия нужно в ОС тоже установить mongo и только потом настроить удаленный доступ, или есть ещё какие то варианты?
смысл в том чтобы и из контейнера (микросервиса) и с удаленной машины можно было обрабатывать БД,
Dmytro
вынеси монгу на отдельный сервер в локальной сети
Dmytro
чтобы кроме монги там ничего не было
Dmytro
быстро в развертывании и решит твою проблему
быстро в развертывании и решит твою проблему
ты только что пересобрал мой мозг 👽
я только что осознал что монго у меня в отдельном контейнере и я могу спокойно к ней стучаться если вынесу ее в отдельную подсеть ....
спасибо 🍺
Dmytro
сам так делаю)
Dmytro
таким образом можно и локально достучаться прокинув порты через ssh
Vadim
Vadim
Vadim
Ждет объект вместо строки
Vadim
хотя напрямую в базу такой запрос срабатывает - db.channels.find({"templates.audio": ObjectId("6111437bb0bfe22efcff141f")}).pretty() - _id сменился, но суть та же
Cloud
find({
templates: {
$elemMatch: {
audio: ObjectId("_id")
}
}
Vadim
в таком виде среда ругается на ObjectId
Vadim
is not defined
Vadim
если просто передавать id, то возвращается пустой массив.
как вариант сначала populate выполнять, а уже после запрос делать видимо
Cloud
ты для начала через mongosh отправь
Cloud
через монгус можно прост audio: _id
Vadim
Vadim
const check = await channel.find({
templates: {
$elemMatch: {
audio: req.params.id
}
}
}).exec()
Vadim
Владислав
Всем привет
Пытаюсь выполнить этот запрос, который будет удалять дубликаты оставляя только один документ. Проблема, что ничего этот запрос ничего не удаялет. Если попробовать переписать forEach на вот такой .forEach(function(record){print(record._id)}), то выводит одни нулы, но при этом record выглядит след образом {"_id": "MrpiBPqn"}. Есть идеи почему такое может быть?
db.collection
.find({}, {"_id": 1})
.sort({_id:1})
.skip(1)
.forEach((doc) => {
db.collection.findOneAndDelete({ _id : doc._id})
});
Aleksandr
Всем привет , подскажи может кто сталкивался.
У меня есть 2к имён( Саня, Миша, и т.д)
Все они находятся в пределах одной коллекции , но разных документах.
Как можно сделать так , чтобы все мои имена превратились в no name.
С помощью какого параметра можно сделать это ?
На данных момент делаю так:
db.work.updateMany({'studentInfo.firstname':'Алена'},{$set:{"studentInfo.firstname":"No name"}});
Если встретит еще раз firstname Алена поменяет значение в следующих документах, но имена каждый раз новые, перечислять руками, это муторно, как можно сделать так, чтобы перезаписывал firstname - не смотря на то, какое там имя сейчас
Dmytro
db.work.updateMany({},{$set:{"studentInfo.firstname":"No name"}});
Aleksandr
Спасибо вот додумался
db.work.update({},
{$set:{"studentInfo.firstname" : "No name"}},
{ multi: true, upsert: false}
)
Aleksandr
Vlad
Всем привет, подскажите как мне в массив 'tasks' который находится в обекте column, добавить какойто item? Какой метод в mongo использовать?
Vlad
пробую так, но что-то не работает ((((
Bob
Кто подскажет как удалить дубликаты в коллекции?
Bob
чтоб ускорить вставку приходится вставлять с дубликатами, а если поле уникальное,то insertmany выкидывает с ошибкой о дубликате, решено убрать уникальность, вставить, а затем удалить дубликаты в БД, кто может подсказать как это сделать? коллекция из 1 000 000 записей
Denis
Bob
вставляю через C# , там вставляю коллекцию класса через insertmany, не знаю что такое bulk write
Bob
но боюсь коллекцию так не вставишь
Bob
а insertmany может, я вставляю сразу 1млн, таким образом вставка быстро проходит.
Bob
bulkwrite что делает с дубликатами? он обновляет уже имеющийся на новый?
Bob
В общем, все равно выдает тоже самое что и insertmany "Erorr: duplicate key error collection:......"
Bob
Может есть какой-то ключ у функции вставки? чтобы пропустить дубликаты и вставлять дальше?
Viktar
Я для избавления от дубликатов использовал апдейт с ключиком апсерт тру
Viktar
Он если не находил ид, вставлял, а если находил, апдейтил
yopp
yopp
Nikolay
Подскажите, а насколько оправданно использовать монгу в системе, где много параллельных инсертов в одну коллекцию. Вот нашел документ, где сравнивают с ПГ. Так понял, что из-за лока на коллекцию большое количество параллельных вставок не удастся добиться
Nikolay
Вот в этом документе на странице 17 . https://info.enterprisedb.com/rs/069-ALB-339/images/PostgreSQL_MongoDB_Benchmark-WhitepaperFinal.pdf
Romhanach
Всем привет! Подскажите, пожалуйста, почему covered query считаются только такие query, которые возвращают в результате поля которые проиндексированы, но при этом не должно быть поля _id. Почему так? _id ведь по дефолту в каждой коллекции считается индексом
Romhanach
Артём
Romhanach
Bob
Nikolay
поделитесь перфоманс тестами по монге. может есть какая-то признаная фирма, которая делает такие тесты и публикует
radmir
У меня есть документы с полем типа
{
id: 105,
recordIdsChain: [100, 105, 92]
}
Как можно сформировать запрос что нужно найти все записи из коллекции, у которых в recordChain id стоит после заданного в запросе числа?
Например для примера выше если делаю поиск по id 92 то запись не вернется, а если по id 100 то вернется
Eugen
Всем привет,
Может кто-то поскажет как реализовать удаление\изминения поля которое имеет массив id.
Many-to-many
Есть работник
{
id: 92,
services: [10, 12, 25]
}
есть услуги
{
id: 10,
workers: [11, 92]
}
как удаляю id сервиса в документе Работника , то должно в сервисе id Работника тоже удалить. И также наоборот.
Как лучше всего такое реализовать ?
Использую Nodejs , Mongoose, Mongodb
A
Приветсвую,куда копать . нужно взять определенное поле из массива объектов и применить фильтр в других массивах
Вот схема
A
нужно взять клиент ид и найти элементы в других массивах из рис 1
Михаил
Всем привет,
Может кто-то поскажет как реализовать удаление\изминения поля которое имеет массив id.
Many-to-many
Есть работник
{
id: 92,
services: [10, 12, 25]
}
есть услуги
{
id: 10,
workers: [11, 92]
}
как удаляю id сервиса в документе Работника , то должно в сервисе id Работника тоже удалить. И также наоборот.
Как лучше всего такое реализовать ?
Использую Nodejs , Mongoose, Mongodb
Ну как, вручную проверять и удалять вручную
А вообще, это максимально не MongoDB Way такие связи
Kamil
Можно ли как-то задавать время жизни объекта динамически?
Ддя одного, допустим, 12 часов, для другого день, для третьего 30 минут?
Kamil
Или же только статично при создании индекса?
Eugen