c# mongodb or查询_C# mongodb 查询示例

publicHisGpsDataQR GetMongo(HisGpsDataParam param)

{

HisGpsDataQR res= newHisGpsDataQR();

res.GUID= this.Request.RequestUri.ParseQueryString()["GUID"];string s = ConfigurationManager.AppSettings["mongo_port"].Trim();int port =Convert.ToInt32(s);

s= ConfigurationManager.AppSettings["mongo_ip"].Trim();string host =s;//s = ConfigurationManager.AppSettings["mongo_user"].Trim();//string user = s;//s = ConfigurationManager.AppSettings["mongo_pwd"].Trim();//string pwd = s;//MongoDB连接串,以[mongodb://]开头。//string connectionString = "mongodb://" + user + ":" + pwd + "@" + host + ":" + port;

string connectionString = "mongodb://" + host + ":" +port;//连接到一个MongoServer上

MongoServer server =MongoServer.Create(connectionString);//-------------------------------------------------------------------------//打开数据库

MongoDatabase db = server.GetDatabase("xxx");//获取集合

MongoCollection collection = db.GetCollection("xx");//组合查询语句,采用官方查询 因为要判断是否不显示普通定位数据,故不采用此方法//query = Query.And(Query.EQ("DEV_ID", param.dev_id), Query.GTE("LTIME", stime), Query.LTE("LTIME", etime));

var sdt =Convert.ToDateTime(param.stime);var edt =Convert.ToDateTime(param.etime);var stime =ConvertDateTimeToLong(sdt);var etime =ConvertDateTimeToLong(edt);//组合查询

QueryDocument query = newQueryDocument();//设备ID等于xxx

query.Add("DEV_ID", param.dev_id);//GPS时间>=stime,<=etime

BsonDocument bd1 = newBsonDocument();

bd1.Add("$gte", stime);

bd1.Add("$lte", etime);

query.Add("LTIME", bd1);//如果不查询普通定位数据,过滤isstation>0

if (param.showgpsdata == 0)

{

BsonDocument bd2= newBsonDocument();

bd2.Add("$gt", 0);

query.Add("ISSTATION", bd2);

}//指定字段,不返回_id和LTIME字段

FieldsDocument fd = newFieldsDocument();

fd.Add("_id", 0);

fd.Add("LTIME", 0);//log4net.ILog log = log4net.LogManager.GetLogger("Mongodb");//log.Info(query.ToString());

MongoCursor cur= collection.FindAs(query).SetFields(fd);long num =cur.Count();//Console.WriteLine(cur.Count());//遍历结果

List lst = new List();foreach (object item incur)

{//mongo结果转string(mongo结果为json格式)

string json =item.ToString();//json转实体类

HisGpsData obj = DeserializeJsonToObjectss(json);//实体类添加到结果列表

lst.Add(obj);

}

res.Content= newHisGpsDataQRContent()

{

Records=lst

};

res.Content.TotalCount= (int)num; //记录数

res.Status = (int)RespondingOK.OK;returnres;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值