Ваша первая структура выглядит более многообещающей для меня, но вы можете немного изменить ее, чтобы сделать ее более эффективной, как описано ниже
users
- user1 details (вы можете включить массив адресов здеськак часть пользовательских данных)
_id: "jsch524xdh",
name:"NAME",
phoneNo:"90010XXXXX",
city: "CITY",
address: [address1 , address2]
other details: "ANY OTHER DATA"
заказы
- детали заказа могут иметь такие ключи, как
order_id
, order_desc
и т. д. и вы должны включить user_id
.Таким образом будет проще получить все заказы, набрав всего user_id
из коллекции заказов
_id: "3rtggf4xdh",
order_desc:"DESC",
user_id:"jsch524xdh (of above user)",
other details: "ANY OTHER DATA",
order_date: "1-1-2019",
is_delivered: true
, дата доставки: "29-1-2019"
адрес
Я не буду предлагать разделять коллекцию адресов отдельно, но вы можете сделать это аналогичным образом
Для доставки, когда пользователь помечает заказ как доставленный, просто обновите заказ с is_delivered
true вместе с датой доставки.Первоначально значения будут ложными и равными нулю (для delivery_date), когда вы вводите значения новых заказов.
Я желаю вам удачи и надеюсь, что вы достигнете своей цели, когда получите суть:)
Вы можете прочитать официальное подробное руководство по лучшей практике здесь