Как запросить дополнительный поддокумент с помощью mongoose?

#node.js #mongodb #mongoose #mongodb-query #mongoose-schema

#node.js #mongodb #mongoose #mongodb-запрос #mongoose-schema

Вопрос:

допустим, у меня есть схема, подобная этой:

 const Product = mongoose.schema({
   product_id: uuid,
   product_quantity: number,
})
const Customer = mongoose.schema({
   customer_id: uuid,
   customer_cart: [product],
})
const Store = mongoose.schema({
   store_id: string,
   customers: [customer],
})
  

как я могу запросить продукт, если у меня есть store_id , customer_id и product_id?
Я знаю, что могу запросить его, вернув весь документ хранилища и используя цикл для перебора массива объектов.
Но я думаю, что это будет очень медленно, если в магазине много покупателей, а у клиента много товаров в корзине.

Есть ли способ просто вернуть продукт без возврата всего документа магазина?

Комментарии:

1. Вам не нужно создавать несколько вложенных документов, отдельные коллекции были бы лучше, а также не нужно создавать поля идентификаторов, они будут созданы по умолчанию, и вы можете сохранить ссылку на идентификатор только в каждой модели. Вы хотите создать несколько хранилищ? пожалуйста, уточните, какова ваша цель?

2. @PritthishNath я хочу, чтобы, когда клиент добавлял товар в свою корзину в определенном магазине, я получал идентификатор магазина, идентификатор клиента и идентификатор продукта. Я хочу использовать информацию для запроса корзины покупателя и изменения количества этого продукта.

3. У вас есть отдельная коллекция продуктов? сначала вы должны создать отдельную коллекцию продуктов, затем добавить ссылку на продукт и количество в массив корзины.