MongoDB是什么:
是基于分布式文件存储的数据库。由C++语言编写。旨在为web应用提供可扩展的高性能数据面的存储解决方案
是一个介于关系数据库和非关系数据库之间的产品。是非关系数据库当中功能最丰富最像关系数据库的。
类似Json的Bson格式,所存数据类型比较封复杂。
特点:支持查询语言强大。类似面向对象的查询语言。
语法和JS很像
windows 下安装过程
下载 mongdb 并安装
新建目录
D:\mongodb\data\db
D:\mongodb\data\log
启动进程
通过cmd 进入到安装mongodb的bin目录下
在cmd 执行 mongod --dbpath=D:\mongodb\data\db
测试连接
进入到安装mongodb的bin目录下
在cmd 执行 mongo
默认进入到test数据库中
db.集合名.find(); 在后面会有讲到
插入:执行命名:
db.person.insert({name:"aa",age:20})
db.perosn.save({name:"aaa",age:10})
注:两者的区别
查看:执行命名: db.person.find({name":"aa",age:20},{key:1|0} ]) 1表示显示字段,0表示隐藏字段
- 若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。
- 若新增的数据中没有主键时,会增加一条记录。
修改:执行命名: db.person.update({"name":"aa"}, {"name":"bb","age":50})db.person.find({age:{$gt:20}})注:第一个参数为筛选条件,第二个参数为是否隐藏>, >=, <, <=, !=, =。对应:"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字"And,OR,In,Not In对应: "无关键字“, "$or", "$in","$nin"db.person.find($or:[{"name":"aa"},{"age":20} ])还可以用正则表达式正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串操作。MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。MongoDB使用PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。不同于全文检索,我们使用正则表达式不需要做任何配置使用正则表达式db.posts.find({post_text:{ $regex: "w3cschool.cc"}})关键字 key: { $regex: value}db.posts.find({post_text:/w3cschool.cc/}也可以写在上面这种形式 key:/value/还可以有不区分大小写的关键字: $options 为 $idb.posts.find({post_text:{$regex:"w3cschool.cc", $options:"$i" }})还可以使用数组元素使用正则表达式有以下场景找到tutorial 开头的标签数据 就可以写成db.posts.find({tags:{$regex:"tutorial"}})
正则表达式的优化如果你的文档中字段设置了索引,那么使用索引相比于正则表达式匹配查找所有的数据查询速度更快。如果正则表达式是前缀表达式,所有匹配的数据将以指定的前缀字符串为开始。例如: 如果正则表达式为 ^tut ,查询语句将查找以 tut 为开头的字符串。正则表达式中使用变量。一定要使用 eval 将组合的字符串进行转换 ,不能直接将字符串拼接后传入给表达式。否则没有报错信息,只是结果为空!实例如下:var name=eval("/" + 变量值key +"/i");以下是模糊查询包含 title 关键词 , 且不区分大小写 :title:eval("/"+title+"/i") // 等同于 title:{$regex:title,$Option:"$i"}
删除:执行命名: db.person.remove({}) 删除全部db.person.update({"name":"aa"},{$set:{"age":33}},false,true} 变相修改或新增:注:第一个参数为筛选条件,第二个参数为修改的值。整体修改: db.person.update({"name":"aa"}, {"name":"bb","age":50})注:如果第二个参数与原有的key不对应,则把第二个参数的key当做时的内容进行补充局部修改: $inc 和 $set。db.person.update({"name":"aa"}, {$inc:{"age":20})每次修改会在原有的基础上自增$inc指定的值,如果“文档”中没有此key,则会创建keydb.person.update({"name":"aa"}, {$set:{"age":20})每次修改会将原有的内容改为新的内容。批量修改:db.person.update({"name":"aa"},{$set:{"age":33}},true)注:如果进行修改时,被修改的数据在第三个参数上加了只有true的情况,那么第一个参数(筛选条件)如果没有值,则为新增
新建/切换数据库:执行命名:use 数据库名称 注: 如果数据库不存在则为创建,否则为切换注:第一个参数为筛选条件例如:db.person.remove({key,value})
查询所有数据库: 执行合名:show dbs
查看当前数据库: 执行命名:db
删除数据库: 执行命名:db. dropDatabase();
从指定主机上克隆数据库
执行命名:> db.cloneDatabase(“127.0.0.1”);从指定的机器上复制指定数据库数据到某个数据库
执行命名: db.copyDatabase("mydb", "temp", "127.0.0.1");
操作集合:查看当前集合 执行命令:show collections
删除集合 执行命令:db.集合名称.drop()
下面是小编的微信转帐二维码,小编再次谢谢读者的支持,小编会更努力的
----请看下方↓↓↓↓↓↓↓
百度搜索 Drools从入门到精通:可下载开源全套Drools教程
深度Drools教程不段更新中:
更多Drools实战陆续发布中………
扫描下方二维码关注公众号 ↓↓↓↓↓↓↓↓↓↓