@Faradey
программист, php, golang

Как реализовать такое в MongoDB на php?

Например, есть коллекция пользователей, которые могут иметь много автомобилей, а каждый автомобиль конкретного пользователя может иметь различные детали никак не связанные с другими автомобилями пользователей. Автомобили и их детали никак не связаны между собой и не будут связаны между собой. Это только для примера.
Вот как это выглядит на примере JSON
{name: Vova,
avto:[
{
name: Lada, detali: [motor, hodovaya, rama]
},
{
name: Zaz, detali: [motor, hodovaya]
}]
}

Вопрос как такое реализовать, чтобы потом можно было как обновлять так и удалять детали или автомобили у пользователя. Я только перехожу с sql на nosql по надобности в одном проекте. Если есть уже где-то статья по данному вопросу, ткните...

Уже нашел как такое реализовать. Получается, чтобы изменить какую-то деталь нужно вытянуть полностью один документ коллекции в переменную и в ней найти эту деталь, изменить и потом сохранить полностью этот измененный документ?
  • Вопрос задан
  • 2515 просмотров
Решения вопроса 2
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Почитайте little mongo book, полностью, она небольшая.
В Вашем случае необходимо update - set (2 глава этой книги)

Вообще может архитектура БД не совсем удобная?
Я бы сделал коллекцию документов с запчастями стандартными под авто.
А в колллекции с клиентами, в случае, если они тюнингуют - новые их детали и с ними работал бы уже, добавляя id авто и уникальные детальки.

Но я не уверен до конца, т.к. хз что за задача стоит, может это ужасный пример архитектуры под проект в целом
Ответ написан
Комментировать
Комментировать
Пригласить эксперта
Ответы на вопрос 2
akubintsev
@akubintsev
Опытный backend разработчик
Честно говоря на этом примере не увидел нужды уходить на Монгу.
Бессхемность нужна там, где пришлось бы делать 100500 полей в таблице, из которых для каждой записи заполнялось скажем 10.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 11:02
5000 руб./за проект
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект