C# mongodb 查询示例
public HisGpsDataQR GetMongo(HisGpsDataParam param) { HisGpsDataQR res = new HisGpsDataQR(); 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 = new QueryDocument(); //设备ID等于xxx query.Add("DEV_ID", param.dev_id); //GPS时间>=stime,<=etime BsonDocument bd1 = new BsonDocument(); bd1.Add("$gte", stime); bd1.Add("$lte", etime); query.Add("LTIME", bd1); //如果不查询普通定位数据,过滤isstation>0 if (param.showgpsdata == 0) { BsonDocument bd2 = new BsonDocument(); bd2.Add("$gt", 0); query.Add("ISSTATION", bd2); } //指定字段,不返回_id和LTIME字段 FieldsDocument fd = new FieldsDocument(); fd.Add("_id", 0); fd.Add("LTIME", 0); //log4net.ILog log = log4net.LogManager.GetLogger("Mongodb"); //log.Info(query.ToString()); MongoCursor cur = collection.FindAs<BsonDocument>(query).SetFields(fd); long num = cur.Count(); //Console.WriteLine(cur.Count()); // 遍历结果 List<HisGpsData> lst = new List<HisGpsData>(); foreach (object item in cur) { //mongo结果转string(mongo结果为json格式) string json = item.ToString(); //json转实体类 HisGpsData obj = DeserializeJsonToObjectss<HisGpsData>(json); //实体类添加到结果列表 lst.Add(obj); } res.Content = new HisGpsDataQRContent() { Records = lst }; res.Content.TotalCount = (int)num; //记录数 res.Status = (int)RespondingOK.OK; return res; }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号