手机版

网中MoongoDB的简单调用图文教程

时间:2021-08-19 来源:互联网 编辑:宝哥软件园 浏览:

前言

本文主要给大家介绍了关于。网中MoongoDB调用的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

方法如下:

1、安装。网驱动:安装软件包蒙古数据库.驾驶员

2、数据插入,链接数据库

//新建人测试类公共类人{公共长Id { get设置;} public int Age { get设置;}公共字符串名称{获取设置;}公共int Height { get设置;} public TestPerson t1 { get设置;} }公共类TestPerson {公共字符串名称{ get设置;} } public类对象person { public ObJect Id { get设置;} public int Age { get设置;}公共字符串名称{获取设置;}公共int Height { get设置;} } MongoClient客户端=new MongoClient(' MongoDB ://127。0 .0 .1 ');IMongoDatabase数据库=客户端GetDatabase(' TestDB ');//相当于数据库IMongoCollectionPerson集合=数据库GetCollectionPerson(' Persons ');//大致相当于表人物p1=新人(){ Id=2,姓名='test1 ',年龄=29,身高=130 };收藏。插入一个(P1);//单条插入也支持异步方法,后面建议都用异步的!习惯成自然!回到客户端工具刷新一下,就能看到新插入的数据,MongoDB会自动创建"数据库"以及收藏(约等于"表")。MongoDB默认用编号做主键,因此不用显式指定编号是主键。

MongoDB中没有内置"自增字段",可以把身份声明为物件识别码管理类型(使用蒙古数据库.Bson)这样插入以后就自动给字段赋值。

//多条插入imongocollection对象人员集合1=数据库get collection object person(' object persons ');//大致相当于表ListObjectPerson=new ListObjectPerson(){ new ObjectPerson(){ Name=' test2 ',Age=30,Height=135 },new ObjectPerson() { Name='test3 ',Age=31,Height=140 } }集体1。插入许多(人);//多条插入

MongoDB是用数据保存的,因此也可以直接以数据格式插入,用b文档来代表:

imongocollectionnddocument dogs=数据库. getcollectionsondocument(' Dogs ');string jsondata='{id:8999,年龄:81,姓名:'japan ',性别: true } ';BsonDocument p2=BsonDocument .解析(JSON数据);狗。插入一个(p2);

还可以插入有嵌套关系的对象,比如学生和老师,注意不会有表间关系,都是存到一个集合中,注意和关系库不一样。

IMongoCollectionPerson集合=数据库GetCollectionPerson(' Persons ');//大致相当于表Person p1=new Person(){ Id=2,Name='test1 ',Age=29,Height=130,t1=new test Person(){ Name=' 222 ' } };收藏。插入一个(P1);//单条插入

3、蒙古数据库查询

IMongoCollectionPerson集合=数据库GetCollectionPerson(' Persons ');var filter=BuildersPerson .过滤。Gt(p=p .年龄,5岁);var filter1=BuildersPerson .过滤器和构建者。筛选器。Gt(p=p .年龄,5岁),构建者人员。滤波器方程(p=p.Id,1));//和并且还有或者方法var filter2=BuildersPerson .过滤器。其中(p=p .年龄5p .id==1);//和上面的写法是一样的但是,建议用在哪里方法//普通查询定义变量结果=集合。查找(过滤)。to list();foreach(结果中的变量项){控制台.WriteLine(项。年龄项目。名称);}除了Gt,还有Gte、In、Lt、Lte、Ne、Nin、Near、Near、Near、Or、Where、And、Not。当然最常用的还是在哪里操作:

异步查询

//异步查询使用(iasyncsorperson personarsor=wait collection .FindAsyncPerson(筛选器){ while(人员分类).MoveNextAsync().结果)//获取下一组数据,相当于是否有指针,MongoDB其实是返回一个组,不像结构化查询语言每次是一次次取{ IEnumerableperson items=personarsor .当前;//返回当前组的数据foreach(项目中的定义变量项目){控制台.WriteLine(项。年龄项目。名称);} } //如果数据量不大,可以直接to list var results=personarsorsor .to list();} 为什么FindAsync不直接返回集合,而是要移动下一个之后返回一个集合呢?因为返回的数据量可能很大,因此MongoDB是分批下载,下载一批之后执行获取更多信息操作返回下一批。可以通过查找选项参数的BatchSize设置每一批的大小。

如果确认返回的数据量不大,可以var ps=等待人员或ToListAsync()(或者ToEnumerable()等)一下子返回所有数据。还有任何、第一、第一或最后等以及异步操作。需要注意MongoDB中查询区分大小写。

4、分页查询

//分页FindOptionsPerson,Person find op=新的查找选项Person,Person();芬多普。极限=3;//取最多几条芬多普skip=2;//跳过几条芬多普排序=构建者个人.排序。升序(p=p .年龄)。升序(p=p .名称);//排序使用(var cursor=集合.FindAsync(筛选器,findop).结果){ var items=cursor .to list();foreach(项目中的定义变量项目){控制台.WriteLine(项。年龄项目。名称);}} 指定排序规则芬多普排序=构建者个人.排序。升序(p=p .年龄)。升序(p=p .名称);

5、Json格式取法

//json格式取法imongocollectiononnddocument bsonDoc=数据库getcollectionsondocument(' Persons ');var过滤器4=建筑商bson文档.过滤。Gt('Age ',5);使用(var人员=等待bsonDoc .FindAsync(filter4)) { foreach(等待人员中的定义变量项目tolistansync()){控制台.WriteLine(项。获取值("名称")。AsString);}}6、更新更新操作

IMongoCollectionPerson上儿子=数据库GetCollectionPerson(' Persons ');var upFilter=BuildersPerson .过滤器。其中(p=p。年龄20);//筛选条件var update=BuildersPerson .更新。Set(c=c.Name,' test2 ');//更新条件,将名字更新成测试2高级测试.更新许多(过滤,更新);7、删除删除操作

IMongoCollectionPerson教师=数据库GetCollectionPerson(' Persons ');var deletefilter=BuildersPerson .过滤器。其中(p=p . Id==1);老师们。删除许多(删除过滤器);用更新机会比较少,如果频繁的用更新可能意味着用错了;也不要想着加入、分组,还是场景不对!

8、蒙古数据库应用场景

日志记录系统;设备监控数据的存储;饿了么外卖骑手接单;存储商品、商家信息;网站评论信息;存储爬虫爬过来的第三方数据;

但是像订单、金融交易、游戏装备等这些关键信息不要用MongoDB

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

版权声明:网中MoongoDB的简单调用图文教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。