MongoDb基本语法

2018-06-17 20:07:04来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一、操作mongodb数据库


1、创建数据库

  • 语法:use 数据库名
  • 说明:如果数据库不存在则创建数据库,否则切换到指定的数据库
  • 注意:如果刚刚创建的数据库不在列表内,如果要显示它,我们需要向刚刚的数据库中插入一些数据(db.student.insert({name:'tom',age:18,gender:1,address:"北京",isDelete:0}))

2、删除数据库
  前提:使用当前数据库
  db.dropDatabse()


3、查看所有数据库
  show dbs


4、查看当前正在使用的数据库
  a、db  
  b、db.getName()


5、断开连接
  exit


6、查看命令api
  help


二、集合操作


1、查看当前数据库下有哪些集合
  show collections


2、创建集合
  


a、
    语法:db.createCollection('集合名')
    示例:db.createCollection('class')
  


b、
    语法:db.集合名.insert(document)
    示例db.student.insert({name:'tom',age:18,gender:1,address:"北京",isDelete:0})
    区别:两者的区别在于前者创建的是一个空的集合,后者创建一个空的集合并添加一个文档。


3、删除当前数据库中的集合
  语法:db.集合名.drop()
  示例:db.class.drop()


三、文档操作


1、插入文档
  a、使用insert()方法插入文档

  语法:db.集合名.insert(文档)
  插入一个:db.student.insert({name:"lilei",age:19,gender:1,address:"北京",isDelete:0})

  语法:db.集合名.insert([文档1],[文档2],……,[文档n])
  插入多个:db.student.insert([{name:"韩梅梅",age:20,gender:1,address:"上海",isDelete:0},
  {name:"海妹妹",age:19,gender:1,address:"北京",isDelete:0}])

  b、使用save()方法插入文档
    语法:db.集合名.save(文档)
    说明:如果不指定_id字段,save()方法类似于insert()如果指定_id字段,则会更新_id字段的数据
    示例1:db.student.save({name:"poi",age:21,gender:1,address:"北京",isDelete:0})
    示例2:db.student.save({_id:object("5afe6842286b72ee15913653"),name:"poi",age:23,gender:1,address:"北京",isDelete:0})


2、文档更新
  


a、update()方法用于更新已存在的文档
  语法:
    db.集合名.update(
      query,
      update,
      {
        upset:<boolean>
        multi:<boolean>
        writeConcern:<document>
      })
  参数说明:
    query:update的查询条件,类似于sql里update内的where语句
    update:
      update的对象和一些更新的操作符($set,$inc)等。$set直接更新,$inc在原有基础上累加后更新。
    upset:可选,如果不存在update的记录,是否当新数据插入,true为插入,False为不插入,默认false。
    multi:可选,默认false,只更新找到的第一条记录,如果为true,则将查找结果全部更新。
    writeConcern:可选,抛出异常的级别。
  需求:将lilei的年龄更新到25
  实例
  db.student.update({name:"lilei"},{$set:{age25:25}})
  db.student.update({name:"lilei"},{$inc:{age25:25}})累加
  db.student.update({name:"lilei"},{$inc:{age25:25}},{multi:true})全改
  


b、save()方法通过传入的文档替换已有文档
  语法:

    db.集合名.save(document,{writeConcern:<document>})

  参数说明
    document:文档数据
    writeConcern:可选,抛出异常的级别
  
注意:save基本不用,update常用


3、文档删除
  说明:在执行remove()函数前,先执行find()命令来判断执行条件是否存在是一个良好习惯
  语法:
  db.集合名.remove(
    query,

    {
      justOne:boolean,
      writeConcern:<document>
    }
  )
  参数说明:
    query:可选,删除文档的条件
    justOne:可选,如果为true或1,只删除一个文档
    示例:db.student.remove({name:"tom"})


4、文档查询
  


a、find()方法
  语法:db.集合名.find(数据)
  查询所有:db.student.find()
  


b、find()方法查询指定列
  语法:db.集合名.find(
       query,
       {
        key:1,
        key:2
       }
       )
  参数说明:
  query:查询条件
  key:显示的字段,1表示显示
    示例:
      db.student.find({gender:0},{name:1,age:1})
      db.student.find({},{name:1,age:1})


c、pretty()方法以格式化的方式来显示文档
  示例:db.student.find.pretty()


d、findOne()方法查询匹配结果的第一条数据
  示例:db.student.findOne({gender:1})


5、查询条件操作符
  作用:条件操作符用于比较两个表达式并从MongoDb集合中获取数据
  


a、大于 $gt
    语法:db.集合.find({<key>:{$gt:<>value}})
    示例:db.student.find({age:{$gt:20}})
  


b、大于等于 $gte
    示例:db.student.find({age:{$gte:20}})
  


c、小于 $lt
    示例:db.student.find({age:{$lt:20}})
  


d、小于等于 $lte
    示例:db.student.find({age:{$lte:20}})
  


e、等于 :
  


f、使用_id查询
  


g、查询某个结果集的条数
    db.student.find().count()
  


h、查询某个字段的值是否包含另一值
    db.student.find({name:/ile/})
  


i、查询某个字段的值是否另一个值开头
    db.student.find({name:/^li/})


6、条件查询and or
  


a、and条件
    语法:db.集合名.find({条件1,条件2,条件n})
    示例:db.student.find({gender:1,age:{$gt:16}}
  


b、or条件

  语法:db.集合名.find

   (
    {
    $or:[{},{},{}]
    }
  )
  示例:db.student.find({$or:[{age:11},{age:{$gt:20}}]})


c、and or 联合
  语法:
    db.集合名.find

    (
      {
        条件1,
        条件2,
        $or:[{条件3},{条件4}]
      }
    )


7、limit、skip
  


a、limit():读取指定数量的数据记录
    示例:db.student.find().limit(2)
  


b、skip():跳过指定数量的数据
    示例:db.student.find().skip(2)
  


c、limit和skip联合
    通常用这种方式来实习分页功能
    示例:db.student.find().limit(3).skip(3)


8、排序
  语法:db.集合名.find().sort({<key>:1|-1})
  示例:db.student.find().sort({age:1})
  注意:1表示升序,-1表示降序。



标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:hivesql优化的深入解析

下一篇:ubuntu14.04server版安装redis