MongoDB在C#.net中占用太长时间

时间:2015-02-13 07:21:08

标签: mongodb c#-4.0 mongodb-query mongodb-.net-driver

我正在使用C#驱动程序从mongoDB中检索数据,我要花很多时间列出请帮助我

我的Mongoquery是

var documentReportIds = new BsonValue[] { LatestReportIds };
var documentChennelIds = new BsonValue[] { Cid };
var documentPropertyIds = new BsonValue[] { Pid };
IMongoQuery query = new QueryDocument();
query = Query.And(Query.GTE("CheckInDate", startdate.Date.AddMinutes(330)),
Query.LTE("CheckInDate", endDate.Date.AddMinutes(330)));
query = Query.And(query, Query.EQ("SubscriberPropertyId", reportFilter.SubscriberPropertyId));
query = Query.And(query, Query.EQ("LengthOfStay", reportFilter.LOS));
query = Query.And(query, Query.In("ReportId", documentReportIds));
query = Query.And(query, Query.In("ChannelId", documentChennelIds));
query = Query.And(query, Query.In("PropertyId", documentPropertyIds));

 MongoDBEntities<ScheduleOptimizationReportDetails> _obj = new MongoDBEntities<ScheduleOptimizationReportDetails>();
 var list= _obj.GetSchedularOptimizationJoin(query);

执行数据检索的类

public class MongoDBEntities<T>
{
   MongoDatabase db = MongoDBInstance.GetMongoDatabase; 
 public List GetSchedularOptimizationJoin(IMongoQuery query)
 {
 MongoCollection MCollection = db.GetCollection(“Subscription_OptimisedReports”);
 MongoCursor cursor = MCollection.FindAs(query).SetFields(Fields.Include(“ScheduleLogId”, “SubscriberPropertyId”, “CheckInDate”, “ReportId”, “CreatedDate”));
 List entities = cursor.ToList();
 return entities ;
}
}

在C#中选择数据的另一个选项是什么,我还在列上应用了索引。

请帮我解决一下。

1 个答案:

答案 0 :(得分:-1)

您可以使用MongoDB.Driver.Linq包来帮助您使用Linq表达式创建查询。