προχωρέω
Всем привет! Подскажите пожалуйста, работа с геоданными (GeoJSON) в MongoDB доступна на всех версиях? Или, например, на бесплатной версии есть какие-то ограничения? Спасибо!
Andrey
Всем привет! Подскажите пожалуйста, работа с геоданными (GeoJSON) в MongoDB доступна на всех версиях? Или, например, на бесплатной версии есть какие-то ограничения? Спасибо!
Если ничего не изменялось, и вы имеете ввиду 2dsphere Indexes и операции с ними, то была из коробки бесплатно https://docs.mongodb.com/manual/core/2dsphere/
προχωρέω
Если ничего не изменялось, и вы имеете ввиду 2dsphere Indexes и операции с ними, то была из коробки бесплатно https://docs.mongodb.com/manual/core/2dsphere/
Интересует и индексация и возможность написания гео-запросов (geoWithin, geoIntersects). Подумал, может ли быть такое, что в бесплатной версии это всё недоступно. Спасибо!
Andrey
Коллеги, вопрос по индексам и aggregate с merge. Вопросы такие про переиндексацию данных: Если из коллекции A merge в коллекцию C, происходит добавление полей, по которым не строился индекс в C, то есть в запись в C добавляется поле со значением, то переиндексации в C не будет? И вообще, происходит ли переиндексация в C - если записи, совпали, и новой не создается? Вопрос больше про производительность
Bob
Кто сталкивался с проблемой запуска Mongo??
Bob
System Error 1067 has occurred
Bob
Удалить файл /data/mongod.lock и запустить mongod.exe —repair не помогает
Bob
попробовал запустить сейчас mongod.exe —dbpath [полный путь до папки с бд] —repair и идет восстановление походу, но там пару баз по 150млн и 50 млн восстанавливать так долго будет?
Bob
что оно делает при запуске —dbpath —repair?? Все базы считывает? дубликаты не создаст?
Bob
О. Помогло)
Viktar
Всем привет. Есть две коллекции с ид по 400+ млн записей. Надо найти ид которые есть в одной но нет в другой. Существует какой нибудь способ их найти, а не искать каждую запись в другой коллекции?
R-lion
Всем привет, у меня проблема я работаю ubuntu 18.04 node express mongodb каждый день база очищается сама по себе в чем проблема может быть ?
R-lion
блиН
Vadim
Всем привет! Я пользую mongoose, у меня есть две схемы. serviceSchema = { profiles: { type: Schema.Types.ObjectId, ref: 'channel' }, } +channelSchema Мне нужно делать проверку перед удалением шаблона канала из коллекций каналов, не используется ли он в ref. для сервисной схемы. Может быть есть встроенная защита от удаления связанных коллекций?
Cloud
Привет, подскажите, как можно сделать связь, чтоб при удадение пользователя удалялись все его товары, у меня есть Модель товара и свойство owner.
Cloud
Cloud
При удаление Owner хотелось чтоб удалилсь все его товары
Cloud
в sql базах используется Cascade, а в монго походу нужно кастомный мидлвар пилить который чистит остальное на remove в документе
Cloud
В монге такое только вручную, либо как сказали выше на мидлварях в фреймворках
Cloud
А мб есть готовые мидлвеиры?
Cloud
а на чем вы пишите
Cloud
Mongoose + Node
Cloud
Очень может быть в интернетах похожий код можно найти по postSave и похожим хукам в монгусе, но всеравно руками допиливать под себя придется
Joe
Достаточно воспользоваться ивэнтами, при удалении заэмитить, что какой-то юзер удален и запустить по нему deleteMany Это по сути такой же хук
Joe
Но, в продакшн лучше использовать софт дэлит
Joe
Вместо физического удаления, прописать deleted: true
Aleksandr
Всем привет, подскажите , как в документе , внутри объекта изменить название строки ?
Eva🇺🇦
Привет! Ответьте, пожалуйста, на вопросы по mongo views В каких кейсах используется view? В доке в качестве примера говорят о сокрытии ненужных полей для юзера, либо объединении (например, first и last name). Я решил использовать view для преображения data object в data transfer object. Это нормально? Дока говорит: MongoDB does not persist the view contents to disk. A view's content is computed on-demand when a client queries the view. Но при этом у меня создаются документы при обращении к view (см. скрин). Это просто ссылки на существующий документ и его поля или новая запись документа?
Aleksandr
Ты имеешь в виду поле?
Да , я все никак понять не могу , не меняется и все. Есть документ , есть объекты данных и в самом массиве данных изменить значения , пробовал с $rename , не смог, $set так же не удовлетворил.
Cloud
Не ну погоди, очень странно, что у него $rename не сработал
Aleksandr
скинь скрины документа плз, и примеры запросов шо ты писал
$rename отработал , но криво. Он удалил старое значение, но создал как новый объект. Чуть позже , вышел пока , решил тут узнать.
Cloud
Ну $rename по сути это комбинация $unset и $set
Aleksandr
{ "_id": { "$oid": "5fae910f4da225771e857d0e" }, "user": { "fullName": "Петр Петров", Пытаюсь изменить fullName либо другое значение, либо просто пустота. Если db.requests.update({"user.fullName": "Петр Петров"},{$rename: {"user.fullName":"experience"}}) он вырезает объект user B переносит в конец всего документа с таким значением "experience": "Петр Петров"
Cloud
Ну это объект, так что поле в конец перенесло это нормально Учитывая что под капотом ансет и сет
Aleksandr
Хорошо, как тогда построить запрос, чтобы он изменил мне эти данные либо же вырезал без переноса объекта.
Cloud
А попробуйте без дот нотации
Cloud
{user: {$rename:{ usenName:
Cloud
Хотя стоп По доке все норм вы посылате Опишите желаемый результат плз Кодом
Aleksandr
Тоесть если у меня есть например user_name Михаил ХХХ При запросе: db.requests.update({}, {$set:{"user_name" : "no name"}}, { multi: true, upsert: false} ) Все гуд отрабатывает. Но он идет как объект со значение. А нужно чтобы внутри объекта поулчается он поменял мне значение. Исходя из логики этого запроса db.requests.update({"user.fullName": "Петр Петров"},{$rename: {"user.fullName":"experience"}}) Он правильный, только вот с параметрами что-то не то. Возможно ли сделать например что-то того: чтобы просто затер эти данные оставляет значения внутри ключи целыми и невредимыми?
Cloud
$renane переименовывает ключи А не значения
Aleksandr
$renane переименовывает ключи А не значения
так вот и пишу сюда чтобы подсказали, как правильней сделать.
Danila
Подскажите, что лучше: 1. Множество документов 2. Либо 1 документ и в нём массив данных?
Danila
Пример: транзакции покупок. 1 вариант: При каждой покупке создавать новый документ с userId и productId, timeStamp. 2 вариант: Создать 1 документ для юзера и в нём хранить массив покупок. Какой вариант правильнее?
Danila
После mysql немного в конфузе
Михаил
Пример: транзакции покупок. 1 вариант: При каждой покупке создавать новый документ с userId и productId, timeStamp. 2 вариант: Создать 1 документ для юзера и в нём хранить массив покупок. Какой вариант правильнее?
Зависит от того, как тебе потом удобнее будет работать с этим массивом покупок Например, если тебе нужно будет делать статистику сколько пользователей купило определенный товар - то удобнее, конечно, отдельным документом делать А если тебе нужно будет быстро отображать историю покупок определенного пользователя - то второй вариант с массивом данных
Danila
Хорошо, понял спасиб)
Aryn
Ребята, как в поле history (список) к элементу добавить уникальный ID?
Aryn
И ещё, можно ли поле balance (float) увеличить в таком виде?: +1 или -1
Дмитро
Всем привет! Подскажите пожалуйста, как правильно сделать? У меня есть 2 коллекции, контакты и юзеры. Мне надо получить список контактов но если у контакта и юзера одинаковое поле email и также у юзера есть поле someCondition: true то вставлять этого юзера на место контакта. Спасибо за ответ)
Aryn
И ещё, можно ли поле balance (float) увеличить в таком виде?: +1 или -1
update_one({'_id': user_id}, {'$inc': {'balance': balance}}) Выполняю такой запрос, получилось
Aryn
Ребята, как в поле history (список) к элементу добавить уникальный ID?
Говоря простым языком: Есть такой объект пользователя: { "user_id": "<telegram_user_id>", "history": [ { "id": 1 "desc": "description" } ] } Как получить следующий _id элемента со списка history?
Aryn
Они же всё равно разные
Kirill
а что?
Ну я вот так делал, теперь жалею)
Aryn
не знаешь когда юзер добавился?
Kirill
Это в итоге неудобно выходит. Просто заведи отдельно поле для user_id и делай там индекс
Aryn
Это в итоге неудобно выходит. Просто заведи отдельно поле для user_id и делай там индекс
Так и не понятно, почему неудобно. Да, я знаю что через ObjectID можно достать когда юзер добавился в ISO-формате, но мне это не нужно
Kirill
Хорошо, поменяю, @Grinrill, но вот это срочно нужно сделать ((
А тебе обязательно этот индекс нужен?
Kirill
Да
А зачем
Aryn
А зачем
Пишу бота для публики, нужно
Kirill
Пишу бота для публики, нужно
Я спрашиваю, потому что хочу попробовать предложить альтернативное более простое решение
Aryn
Я спрашиваю, потому что хочу попробовать предложить альтернативное более простое решение
Нужно добавлять историю. Пример элемента: { "id": 1 "desc": "description" }
Aryn
Нужно увеличивать id на 1
Kirill
Да. Но зачем тебе id?
Aryn
Да. Но зачем тебе id?
В боте кнопки писать под них
Kirill
В боте кнопки писать под них
Т.е. ты делаешь кнопки с callback_data=id записи, по нажатии ищешь эту запись в обьекте юзера и что-то с ней делаешь?
Aryn
Ребята, как в поле history (список) к элементу добавить уникальный ID?
Решил эту проблему так: id = self.db.histories.count_documents({'user_id': user_id}) + 1
Aryn
Также, добавил collection histories