我有以下代码用于在 MongoDB 中检索消息,这些消息恰好有一个按位标志“状态”,这就是为什么我使用内置的 BsonJavaScript 功能来过滤这些记录。该语句是否会尝试在 ToUserId 或 Status 字段上使用索引,即使它使用 JavaScript 语法进行查询评估?
public long NewMessageCount
{
get
{
var script = CreateScript("Status", MessageStatus.Unread);
return MongoConnectionHandler.MongoCollection.Count(Query.Where(script));
}
}
public string ToUserId = "51e8dd21d84513129c644fa6";
public string CreateScript(string field, MessageStatus filter)
{
return String.Format("this.ToUserId == '{0}' && (this.{1} & {2}) == {3}", ToUserId, field, (int)filter);
}