本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着api,有什么错误,希望大家指正:(使用官方驱动) 1.增 增加操作是最简单的,构造bsondcument插入即可: 方式1,直接构造: mongoserver dbserver = new mongoclient(connectionstr)
本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着api,有什么错误,希望大家指正:(使用官方驱动)
1.增增加操作是最简单的,构造bsondcument插入即可:
方式1,直接构造:
mongoserver dbserver = new mongoclient(connectionstr).getserver(); mongodatabase db = dbserver.getdatabase(dbname); mongocollection collection = db.getcollection(collectionname); dbserver.connect(); bsondocument doc = new bsondocument(); doc[age] = int32.parse(txt_age.text); doc[name] = txt_name.text; doc[num] = txt_num.text; doc[introduction] = txt_introduction.text; collection.insert(doc);
方式2,通过实体构造:
1 var student = new student2 {3 age = int32.parse(txt_age.text),4 name = txt_name.text,5 num = txt_num.text,6 introduction = txt_introduction.text7 };8 9 collection.insert(student);
2.删关键就是构造删除条件,通过api查到remove方法的签名:public virtual writeconcernresult remove(imongoquery query);在网上看到好多写法都是在remove中传入bsondocument对象,但是我查源码发现bsondocument根本没有实现imongoquery接口,实现这个接口的是一个叫做querydocument的类,同时querydocument也继承了bsondocument对象,而构造bsondocument和querydocument的方式超级多,各种方便,简单写几种:
比如构造如下条件,delete from table where?age>15 &age
相应的mongodb条件写法:{age:{$gt:15,$lt:20}},下面就来构造这个条件;
方式1,直接通过bsondocument构造:
bsondocument doc = new bsondocument{ { age,new bsondocument{{$gte,10},{$lte,15}}}};
方式2,直接通过querydocument构造:与1类似
1 querydocument query = new querydocument2 {3 { age,new querydocument{{$gte,10},{$lte,15}}}4 };
方式3,直接通过反序列化json字符串:
1 string json = { age:{$gte:10,$lte:15}};2 var queryjson = bsonserializer.deserialize(json, typeof(bsondocument)) as bsondocument;
个人觉得这种方式挺好,如果你mongodb命令熟悉,这种方式挺适合构造复杂条件的
方式4:通过query类,query是静态类,封装了各种逻辑条件方法,有泛型和泛型两种方式:
1 var query1 = query.gt(age, 10);//大于10;greater than 102 var query2 = query.lt(age, 15);//小于15;less than 153 var query = query.and(query1, query2);
但是更好的要数泛型方式了:
var query1 = query.gte(t => t.age, 10); var query2 = query.lte(t => t.age, 15); //var query = query.and(query.gte(age, 10), query.lte(age, 15)); var query = query.and(query1, query2);
最后执行remove方法即可;
3.查数据显示是必不可少的,查询操作中的条件过滤在删除中已说过,不再赘述,这里先写两种方式(ps:现在了解太浅,只能以笔记形式记录下)
方式1:通过findallas方式或者findas方法
1 var query1 = query.gte(t => t.age, 10);2 var query2 = query.lte(t => t.age, 15);3 var query = query.and(query1, query2);4 5 var list = collection.findas(typeof(student), query);
方式2:通过linq
1 var qlist = (from c in collection.asqueryable()2 where c.age > 10 && c.age 原文地址:mongodb的增删改查, 感谢原作者分享。