2017-09-13 79 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

很好的帮助..谢谢! –