現在、一部のデータがMongoDbデータベースに格納されているASP.NET MVCアプリケーションで作業しています。ASP.NET MVCのMongoDbインデックス
私のコレクションは、この(C#クラスの例)のように保存されたドキュメントが含まれています
今public class MeteredDataReading
{
[BsonId]
public int MyId { get; set; }
public string EDIEL { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime StartOccurence { get; set; }
public int Version { get; set; }
public DateTime Occurence { get; set; }
[BsonRepresentation(MongoDB.Bson.BsonType.Double)]
public decimal Quantity { get; set; }
}
、それがインデックスに来るとき、私は少し迷ってしまいました。私たちが最も使用しているフィールドは次のとおりです。EDIEL
、Occurence
とCreatedDate
クエリの例(pesudo)は次のようになります。
Get all MeteredDataReadings where EDIEL = 1234 and occurence >= startDate and occurence <= endDate and CreatedDate <= deadlineDate order by occurence descending
だから、私が持っている最初の熟考は、次のとおりです。インデックスを作成する方法。 3つのフィールド(EDIEL、Occurence、CreatedDate)すべてに対して単一フィールドインデックスを作成するだけでいいですか?または複合インデックスを作成するのを見てみる必要がありますか?もしそうなら、どのフィールドをcompountインデックスに含めるべきですか? EDIELとOccurence?
私が少し気をつけているのは、これらのインデックスを作成する場所と時期です。アプリケーションが起動するときにそれらを作成する必要がありますか?Application_Start()
?または、それらはmongodbシェルを介して一度作成されるべきですか?
すべてのヘルプ/ヒント/洞察力が大幅にあなたのケースでは
こんにちはMortensen、上記のクエリはあなたを助けました。 –