1、mongodb的安装及简单应用

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})                         
                                     注:如果想要实现批量添加,就写一for循环。                                      
                             db.perosn.save({name:"aaa",age:10})
                                    注:两者的区别
  • 若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。
  • 若新增的数据中没有主键时,会增加一条记录。

查看:执行命名:  db.person.find({name":"aa",age:20},{key:1|0} ])  1表示显示字段,0表示隐藏字段   
注:第一个参数为筛选条件,第二个参数为是否隐藏
 >, >=, <, <=, !=, =。
 对应:"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字"                         
  db.person.find({age:{$gt:20}})
 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   $i
db.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.update({"name":"aa"}, {"name":"bb","age":50})
注:第一个参数为筛选条件,第二个参数为修改的值。
整体修改:  db.person.update({"name":"aa"}, {"name":"bb","age":50})
注:如果第二个参数与原有的key不对应,则把第二个参数的key当做时的内容进行补充
局部修改:  $inc 和 $set。
db.person.update({"name":"aa"}, {$inc:{"age":20})
每次修改会在原有的基础上自增$inc指定的值,如果“文档”中没有此key,则会创建key 
db.person.update({"name":"aa"}, {$set:{"age":20})
每次修改会将原有的内容改为新的内容。
批量修改:                                      
  db.person.update({"name":"aa"},{$set:{"age":33}},false,true}  变相修改或新增:
  db.person.update({"name":"aa"},{$set:{"age":33}},true) 
注:如果进行修改时,被修改的数据在第三个参数上加了只有true的情况,那么第一个参数(筛选条件)如果没有值,则为新增 

  删除:执行命名:  db.person.remove({})  删除全部
注:第一个参数为筛选条件
例如:db.person.remove({key,value})
 新建/切换数据库:执行命名:use  数据库名称  注: 如果数据库不存在则为创建,否则为切换
     
查询所有数据库:  执行合名: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实战陆续发布中………

扫描下方二维码关注公众号 ↓↓↓↓↓↓↓↓↓↓


 





       




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值