我正在從事基于 MERN Stack 的電子商務專案。當用戶登陸我的產品搜索頁面時,我必須獲取可用于搜索的所有口味和類別的串列。
我知道兩種方法(如下所述)&我不知道哪一種更好 || 他們是更好的選擇。
將所有風味和類別存盤在一個陣列中(在其他檔案中),并在添加帶有新 cat&flav 的新產品時更新它們。
或在產品集合上使用 db.collection.distinct()。獲取所有不同的 flav 和類別。
我知道 2 比 1 容易,但是如果我有 10,000 或 100 萬種產品或更多怎么辦。
那么對于性能來說更好的是第一個更好(更快)還是沒關系,就像兩者都很好。我糊涂了。
uj5u.com熱心網友回復:
我認為第二種方法更好,因為當你想添加你不需要update和使用的新產品時insert,它比update
uj5u.com熱心網友回復:
不要使用第一個選項,因為它會使您的后端代碼更加混亂。
如果資料量較小,則第二個選項比較好。
由于您的資料量為 10,000 或 100 萬以下,因此我建議使用這種方法。
在有問題的鍵上創建索引
db.collection.createIndex({"someKey": 1})
使用聚合來獲取唯一值。
db.collection.aggregate([
{
"$sort": {"someKey": 1},
},
{
"$group": {
"_id": "$someKey"
}
},
{
"$group": {
"_id": null,
"distinctValues": {"$push": "$_id"},
}
},
], {allowDiskUse: true})
如果您有任何進一步的疑問,請在評論中告訴我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/348356.html
