2017-09-13 109 views
-2

我有存儲在蒙戈-DB收集客戶記錄創建索引並有與交易如下格式:最好的辦法MongoDB的

{ 
"_id" : ObjectId("59b6992a0b54c9c4a5434088"), 
"Results" : { 
    "id" : "2139623696", 
    "member_joined_date" : ISODate("2010-07-07T00:00:00.000+0000"), 
    "account_activation_date" : ISODate("2010-07-07T00:00:00.000+0000"), 
    "family_name" : "XYZ", 
    "given_name" : "KOKI HOI", 
    "gender" : "Female", 
    "dob" : ISODate("1967-07-20T00:00:00.000+0000"), 
    "preflanguage" : "en-GB", 
    "title" : "MR", 
    "contact_no" : "60193551626", 
    "email" : "[email protected]", 
    "street1" : "address line 1", 
    "street2" : "address line 2", 
    "street3" : "address line 3", 
    "zipcd" : "123456", 
    "city" : "xyz", 
    "countrycd" : "Malaysia", 
    "Transaction" : [ 
     { 
      "txncd" : "411", 
      "txndate" : ISODate("2017-08-02 00:00:00.000000"), 
      "prcs_date" : ISODate("2017-08-02 00:00:00.000000"), 
      "txn_descp" : "Some MALL : SHOP & FLY FREE", 
      "merchant_id" : "6587867dsfd", 
      "orig_pts" : "0.00000", 
      "text" : "Some text" 
     } 
    ] 
} 

我想創建的域「txn_descp」指數,「txndate」 ,「member_joined_date」,「gender」,「dob」以便更快地訪問。有人能幫我創建這個文檔的索引嗎?將感謝任何形式的幫助和建議。

+1

https://www.google.com/search?q=mongodb+how+to+add+index –

+0

https://docs.mongodb.com/manual/indexes/ – Rumoku

回答

1

在創建索引時,需要記住一些事項。

  • 總是爲您使用的查詢創建索引。
  • 只要有可能就去尋找複合索引。
  • 在索引首先字段應該是一個具有最小可能values.Ie,如果存在與性別和DOB作爲關鍵字上的索引,最好是有{性別:1,DOB:1}
+0

感謝您的建議。我只是想知道我的交易相關領域是分層內(結果 - >交易 - > txndate)。查詢時會有這種效果嗎? –

+0

它會影響索引的大小,進而影響內存使用情況。關鍵將是「Transaction.txndate」,這將需要更多的空間來存儲。尋找中等大小的字段名稱並將索引字段保持在根級別總是更好。但是,等級結構也有優勢。 –

+0

很好的幫助..謝謝! –