#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. У вас есть отдельная коллекция продуктов? сначала вы должны создать отдельную коллекцию продуктов, затем добавить ссылку на продукт и количество в массив корзины.