Удаление записи в MongoDB по идентификатору
Для этого нужно знать шестнадцатеричные идентификаторы для бизнес-объекта (БО или BO) и его инстанции BOI.
Например boId = 67511932d4f50b455ef1b4d2
boiId = 5516b84fa2242a344ea1b2b3
Идентификатор БО можно посмотреть в студии, как указано на рисунке ниже:
Здесь можно посмотреть как преобразовывать идентификаторы Преобразование идентификаторов
Для удаление записи нужно:
1] зайти в утилиту mongo (по старому) или mongosh (по новому)
2] выбрать базу данных mongo_boi
use mongo_boi
Если установлен префикс, то нужно его указать тоже
use v1_1_mongo_boi
Можно посмотреть какие есть базы данных командой
show dbs
Потом можно посмотреть какие таблицы есть в этой БД командой:
show tables
Для удаления записи нужно выполнить команду:
db.boi_67511932d4f50b455ef1b4d2.deleteOne({ _id: ObjectId("5516b84fa2242a344ea1b2b3") })
Эта команда соответствует примеру выше - в Вашем случае будут другие идентификаторы БО и БОИ.
В это команде:
db - это ссылка на текущую базу данных, выбранную командой use ранее.
db.boi_67511932d4f50b455ef1b4d2 - ссылка на коллекцию соответствующую БО.
deleteOne - функция удаления по условию
{ _id: ObjectId("5516b84fa2242a344ea1b2b3") } - условие, которое соответствует записи с указанным идентификатором.
Kubernetes
Как можно запустить эту команду, если MongoDB установлена в кластере Kubernetes.
CMD='b.boi_67511932d4f50b455ef1b4d2.deleteOne({ _id: ObjectId("5516b84fa2242a344ea1b2b3") })'
echo $CMD > ___cmd.txt
kubectl -n tst-ns exec -i tst-mongo-pod-0 -- mongo < ___cmd.txt
#or
# kubectl -n tst-ns exec -i tst-mongo-pod -- mongosh < ___cmd.txt
Здесь:
tst-ns
- это имя пространства имён (namespace) в котором установлен сервер MongoDB - подставьте своё
tst-mongo-pod-0
- это имя пода в котором запущен сервер MongoDB - подставьте своё
mongo
или для новой mongosh
- терминал MongoDB для управления базой данных