未使用所需索引的MongoDB查询

未使用所需索引的MongoDB查询,mongodb,database,nosql,Mongodb,Database,Nosql,我正在使用.NETSDK 我有一份结构如下的文件: 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

我正在使用.NETSDK 我有一份结构如下的文件:

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);
var查询=
(来自collection.AsQueryable()中的项)
其中item.OwnerId==162399
orderby item.CreatedDateTime,item.ChallengeCreatedDateTime
选择项目)。取(10);
但是,正在执行完整表扫描。 我知道顺序在索引中很重要。我相信这是正确的,尽管我可能弄错了


你知道我做错了什么吗?

天哪,我想我要自杀了

在索引中,我将其中一个键指定为OwnerID 但是在查询中我使用了OwnerId 小写字母“d” 因此它没有使用正确的索引


我不会再犯那个错误了

应该是
。。。其中item.OwnerID=162399
而不是
。。。其中item.OwnerId
位于:

打字版本

var query =
          (from item in collection.AsQueryable<ChallengeComment>()
           where item.OwnerID == 162399
          orderby item.CreatedDateTime, item.ChallengeCreatedDateTime
          select item).Take(10);
var query=(来自collection.AsQueryable()中的项,其中item.OwnerId==162399
orderby item.CreatedDateTime,item.ChallengeCreatedDateTime选择项)。取(10)

更正版本

var query =
          (from item in collection.AsQueryable<ChallengeComment>()
           where item.OwnerID == 162399
          orderby item.CreatedDateTime, item.ChallengeCreatedDateTime
          select item).Take(10);
var查询=
(来自collection.AsQueryable()中的项)
其中item.OwnerID==162399
orderby item.CreatedDateTime,item.ChallengeCreatedDateTime
选择项目)。取(10);