私は .Net SDK を使用しています。次の構造のドキュメントがあります。
public class ChallengeComment
{
public long Id { get; set; }
public long ChallengeId { get; set; }
public long OwnerId { get; set; }
public DateTime ChallengeCreatedDateTime { get; set; }
public DateTime CreatedDateTime { get; set; }
public string Content { get; set; }
}
私は以下を使用してインデックスを作成しました:
IMongoIndexKeys keys = new IndexKeysDocument {{ "OwnerID", 1 }, { "CreatedDateTime", 1 }, { "ChallengeCreatedDateTime", 1 } };
IMongoIndexOptions options = IndexOptions.SetUnique(false);
_mongoDatabase.GetCollection("ChallengeComment").EnsureIndex(keys,options);
そして、インデックスは正常に構築されました
そして、私は次のクエリを実行しています
var query =
(from item in collection.AsQueryable<ChallengeComment>()
where item.OwnerId == 162399
orderby item.CreatedDateTime, item.ChallengeCreatedDateTime
select item).Take(10);
ただし、全表スキャンが実行されています。インデックスでは順序が重要であることを知っています。間違っているかもしれませんが、これは正しいと思います。
私が間違っていることについてのアイデアはありますか?