Я разрабатываю приложение с MongoDB и nodejs Я должен также упомянуть, что я новичок и поэтому, пожалуйста, помогите мне через этот вопросСсылка _id в поддокументе в другой коллекции MongoDB
моей база данных имеют категории сбора а затем в каждой категории я хранение продуктов в поддокументе так же, как показано ниже:
{
_id : ObjectId(),
name: String,
type: String,
products : [{
_id : ObjectId(),
name : String,
description : String,
price : String
}]
});
Когда дело доходит до хранения заказов в базе данных коллекция заказов будет выглядеть следующим образом:
{
receiver : String,
status : String,
subOrders : [
{
products :[{
productId : String,
name : String,
price : String,
status : String
}],
tax : String,
total : String,
status : String,
orderNote : String
}
]
}
Как вы можете видеть, мы сохраняем _id продуктов, которые являются поддокументом категорий в заказах при хранении нет проблем, очевидно, когда дело доходит до получения этих данных, если нам просто нужно ограниченное поле, например имя или цена также не будет проблемой, но если позже нам понадобятся дополнительные поля из таких продуктов, как описание, ... они не хранятся в заказах.
Мой вопрос: Есть ли простой способ доступа к другим областям продуктов, кроме цикла по всем категориям в mongodb, а именно, мне нужен образец кода для запроса описания продукта, только имея его _id в MongoDB?
или наш дизайн и реализация были неправильными, и я должен перепроектировать его с нуля и отделить продукты от категорий в другой коллекции?
пожалуйста, не ставьте ссылки на веб-сайты или блоги, которые обычно говорит о MongoDB и его реализации коллекций, если они не сосредоточены на очень похожий вопрос помоему
заранее спасибо
Я думаю, что было достаточно ясно, на мой вопрос, и при условии достаточно деталей на самом деле нет коллекции продуктов в моем дб, .. Существует а н и имеет поддокумент, который хранит продукты и так как я новый to Mongodb Я ищу самый быстрый запрос и наиболее оптимизированный, который извлекает продукт. Описания только с продуктом _id – Siavosh
Извините, я мысленно перевел его в рабочую структуру. Я добавил несколько подробностей, объясняющих, почему ваша предлагаемая структура не будет работать для ваших требований. – WiredPrairie
Спасибо за обновление ответа, поэтому ваше предложение состоит в том, чтобы избежать более одного шага, вложенного в элементы – Siavosh