簡體   English   中英

MongoDB/Mongoose 查詢多個對象

[英]MongoDB/Mongoose Query for multiple objects

我有一個 MongoDB 數據庫,它由 3 個 collections 組成。

  1. 類別
  2. 子類別
  3. 產品

每個產品都有以下model:

const ProductSchema = new Schema({
    category: String,
    subcategory: String,
    name: String,
    description: String,
    price: String,
    Image: [{
        url: String,
        filename: String
    }],
    deleteImages: []  

});

我想要的是查詢一個類別,然后獲取屬於該類別的子類別,並且(這里是問題:)從找到的子類別中查詢屬於它們的產品。

app.get("/api/front/show/:category", asyncHandler(async(req,res)=>{
  const category = req.params.category;
  const subcategories = await SubCategoryMd.find({'category' : category});
  const products = await ProductMd.find({/* Pass here the found subcategories */});
  res.json({subcategories, products});
}));

如何使用 find 查詢多個對象?

app.get("/api/front/show/:category", asyncHandler(async(req,res)=>{
  let products = []
  const category = req.params.category;
  const subcategories = await SubCategoryMd.find({'category' : category});
  const productsBulk = await ProductMd.find({}).collation({ locale: 'el' }).sort('name');
  productsBulk.forEach(product => {
    subcategories.forEach(subcategory => {
      if(subcategory.name === product.subcategory){
        products.push(product)
      }
    });
  });
  res.json({subcategories, products});
}));

這是一個簡單的解決方案,但它已經提取了所有產品,除此之外,我認為它是一個非常昂貴的 function 運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM