在MongoDB.Bson命名空间下存在一个BsonDocument类,它是MongoDB的文档对象,代表着MongoDB中不规则数据一条条实体模型。可以使用BsonDocument对不规则数据进行操作,这个类型继承了**IEnumberable<>**类,也就是说又将每一个实体模型看做一个集合,我们可以使用下标方式获取实体模型中的值
// //摘要: //Getsorsetsavaluebyposition. // //参数: //index: //Theposition. // //返回结果: //Thevalue. publicoverrideBsonValuethis[intindex]{get;set;} // //摘要: //Getsorsetsavaluebyname. // //参数: //name: //Thename. // //返回结果: //Thevalue. publicoverrideBsonValuethis[stringname]{get;set;} // //摘要: //Getsthevalueofanelementoradefaultvalueiftheelementisnotfound. // //参数: //name: //Thenameoftheelement. // //defaultValue: //Thedefaultvaluetoreturniftheelementisnotfound. // //返回结果: //Tehvalueoftheelementoradefaultvalueiftheelementisnotfound. [Obsolete("UseGetValue(stringname,BsonValuedefaultValue)instead.")] publicvirtualBsonValuethis[stringname,BsonValuedefaultValue]{get;}4.1查询部门是开发部的信息
//创建约束生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; //约束条件 FilterDefinition<BsonDocument>filter=builder.Eq("DepartmentName","开发部"); //获取数据 varresult=coll.Find<BsonDocument>(filter).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.2获取Sum大于4的数据
//创建约束生成器 FilterDefinitionBuilder<BsonDocument>builderFIlter=Builders<BsonDocument>.Filter; //约束条件 FilterDefinition<BsonDocument>filter=builder.Gt("Sum",4); varresult=coll.Find<BsonDocument>(filter).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.3And约束
//创建约束生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; //约束条件 FilterDefinition<BsonDocument>filter=builder.And(builder.Gt("Sum","2"),builder.Eq("DepartmentName","运维")); varresult=coll.Find<BsonDocument>(filter).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.4查询指定值
//创建约束生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; ProjectionDefinitionBuilder<BsonDocument>builderProjection=Builders<BsonDocument>.Projection; //Include包含某元素Exclude不包含某元素 ProjectionDefinition<BsonDocument>projection=builderProjection.Include("DepartmentName").Exclude("_id"); varresult=coll.Find<BsonDocument>(builderFilter.Empty).Project(projection).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.5排序
//创建生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; //排序生成器 SortDefinitionBuilder<BsonDocument>builderSort=Builders<BsonDocument>.Sort; //排序约束Ascending正序Descending倒序 SortDefinition<BsonDocument>sort=builderSort.Ascending("Sum"); varresult=coll.Find<BsonDocument>(builderFilter.Empty).Sort(sort).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.6In查询
//创建生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; FilterDefinition<BsonDocument>filter=builderFilter.In("DepartmentName",new[]{"测试部","开发部"}); varresult=coll.Find<BsonDocument>(filter).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.7分页查询
//创建生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; //分页Skip跳过Limit查询多少 varresult=coll.Find<BsonDocument>(builderFilter.Empty).Skip(1).Limit(1).ToList(); foreach(variteminresult) { //取出整条值 Console.WriteLine(item.AsBsonValue); }4.8查询总条目数
//创建生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; //总条目数 varresult=coll.Find<BsonDocument>(builderFilter.Empty).Count();4.9Linq查询
//创建生成器//linq varresult=fromyincoll.AsQueryable()selectnew{DepartmentName=y["DepartmentName"],id=y["_id"]}; foreach(variteminresult) { Console.WriteLine("DepartmentName:"+item.DepartmentName+"====Id:"+item.id); }4.10分组查询
//创建生成器 FilterDefinitionBuilder<BsonDocument>builderFilter=Builders<BsonDocument>.Filter; //分组 varresult=fromyincoll.AsQueryable()groupybyy["DepartmentName"]intosselectnew{DepartmentName=s.Key,Count=s.Count()}; foreach(variteminresult) { Console.WriteLine("DepartmentName:"+item.DepartmentName+"====Count:"+item.Count); }4.11连表查询
//linq //连表查询在这里是自己连自己 varresult=fromuincoll.AsQueryable()joinoincoll.AsQueryable()onu["_id"]equalso["_id"]selectnew{DepartmentName1=u["DepartmentName"],DepartmentName2=u["DepartmentName"]}; foreach(variteminresult) { Console.WriteLine("DepartmentName1:"+item.DepartmentName1+"====DepartmentName2:"+item.DepartmentName2); }本文内容总结:1.BsonDocument对象,2.连接配置,3.插入数据,4.查询,
原文链接:https://www.cnblogs.com/yan7/p/8603640.html