W
e
l
c
o
m
e
: )

mongoDB 常用命令

1.mongoDB数据库命令

一、MongoDB简介

  1. mongodb 文档数据库,存储的是文档(Bson->json的二进制化).

    • json数据存储的就是js中对象和数组。

    • {name:'zhangsan',age:'9'}

  2. MongoDB特点:内部执行引擎为JS解释器,。

    • 把文档存储成bson结构,在查询时,转换为JS对象,并可以通过熟悉的js语法来操作.
  3. mongo和传统型数据库相比,最大的不同:

    • 传统型数据库: 结构化数据, 定好了表结构后,每一行的内容,必是符合表结构的,就是说--列的个数,类型都一样.

    • mongo文档型数据库: 集合中存储的每篇文档,都可以有自己独特的结构(json对象都可以有自己独特的属性和值)

    • mongo数据库的collection不用提前创建(可以隐式创建。)。关系型数据库的表必须提前创建表的

  4. mongodb数据库bin目录下的文件意义

查看数据库

show dbs

创建数据库

  1. mongoDB的数据库是隐式创建的
  2. 步骤
    1. use 不存在的库名
  3. 创建表
    1. 在 这个 库里边 创建集合(也就是表),或者直接插入数据就创建好了。

删除集合(数据表)

db.collectionName.drop() //删除集合(数据表)

删除数据库

db.dropDatabase()	//删除数据库

注意 数据库中的集合为空(也就是数据表)为空时,数据库自动删除!

2.mongoDB CRUD(增删改查)命令

  1. 增加 insert()

    ```
    db.collectionName.insert(document)
    ```
    
    1. 增加一个文档
      db.collectionName.insert({key:value})
      
    2. 增加文档并且 指定id值
      1. 这里需要注意的是一般不指定情况下有默认的ID值
      db.collectionName.insert({_id:num_value,key:value,key:value})
      
    3. 增加多个文档
      db.collectionName.insert([{key:value},{key:value},{key:value}])
      
  2. 修改update()

    db.collection.update(查询表达式,新值,选项)
    改成什么样? -- 新值 或 赋值表达式
    操作选项 ----- 可选参数
    

    举例:

    db.stu.update({name:'zs'},{name:'zl'})
    

    当我们执行该操作之后可以看到,文档修改为{name:'zl'},文档中的其他列不见了,只剩下_id和name列,是新文档,替换了旧文档,而不是修改。

    如果是想修改文档的某列,可以用$set关键字:

    $set:修改某列的值:也可以给某个列添加一个field
    举例:

    db.stu.update({name:'ls'},{$set:{name:'gz'}})
    # 查询到name为 ls的这条数据,使用$set来保证只是修改这个列 name为gz 不删除其他列内容
    

    修改时的赋值表达式

    • $set 修改某列的值

    • $unset 删除某个列
      举例:

      db.stu.update({name:'gz'},{$unset:{age:1}})
      # 查询到 name为 gz的这条数据,删除age这一列,1代表确认删除,当然你指定0就删除不了了
      
    • $rename 重命名某个列
      举例:

      db.stu.update({name:'gz'},{$rename:{name:'new_name'}})
      # 查询到 name为gz的这条数据,修改name列为new_name
      
    • $inc 增长某个列
      举例:

      db.stu.update({name:'ch'},{$inc:{age:12}})
      # 查询到name为ch这一列,给age字段的value加12
      

    Option的作用:{upsert:true/false,multi:true/false}

    Upsert---有则更新,无则插入。

    Multi: True--->更新所有,false更新一条

    举例:

    db.trade.update({name:'ch'},{$set:{gender:1}},{upsert:true})
    # 查询 到 name 为 ch的数据,如果 gender字段存在,则修改值,否则就添加gender字段
    
    db.news.update({_id:99},{x:123,y:234},{upsert:true})
    # 如果没有_id=99的文档被修改,就直接插入该文档
    
    db.stu.update({age:{$gt:10}},{$set:{age:30}},{upsert:true})
    # multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
    
  3. 查找find()

    语法: db.collection.find(查询表达式,查询的列)
    db.collections.find(表达式,{列1:1,列2:1})
    

    在查询的列参数中,1表示显示,0表示不显示

  4. 查询所有文档 所有内容

    db.document.find()
    
  5. 查询所有文档,的name属性 (_id属性默认总是查出来)

    db.document.find({},{name:1})
    
  6. 查询所有文档的gender属性,且不查询_id属性

    db.document.find({gender:1},{name:1,_id:0});
    
  7. 查询所有的内容,并且格式化显示

    db.document.find().pretty()
    

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,及常规 SQL 的 AND 条件

db.document.find({key1:value1, key2:value2}).pretty()

常用方法:

  1. limit() 限制条数
db.document.find().limit(number)
  1. skip() 跳过过少条目数量
db.document.find().limit(number).skip(number)
  1. sort() 排序 1为升序,-1为降序
db.document.find().sort({KEY:1})
  1. count() 计数
db.find().count()

查询表达式

  • 最简单的查询表达式

    {filed:value} ,是指查询field列的值为value的文档

  • $lt小于

    举例:

     db.stu.find({age:{$lt:40}},{})
    # 查询age小于40岁的所有人的所有信息
    
  • $lte小于等于

  • $gt 大于

    举例:

    db.stu.find({age:{$gt:10}},{})
    # 查询 age大于 10岁的所有人的所有信息
    
  • $gte大于等于

  • $ne != 不等于

    db.stu.find({age:{$ne:10}},{})
    # 查询 age不等于10岁的所有人的所有信息
    
  • $nin --> not in 不在一个选择区域内

    db.stu.find({age:{$nin:[10,20,50]}},{})
    # 查询所有的 age不在 列表中的 所有人的 所有信息
    
  • $all:指数组所有单元匹配,就是指我指定的内容都要有,通过一个list来指定

    db.stu.find({hobby:{$all:['book']}},{})
    # 查询所有的 学生 爱好都有读书的
    
  • $exists 含有该字段的文档

    db.stu.find({he:{$exists:1}},{})
    # 查询 所有的 学生 拥有he这个字段的文档
    
  • **\(nor** {\)nor:[条件1,条件2]} 是指 所有条件都不满足的文档为真返回

    db.trade.find({$nor:[{age:3},{age:18}]},{})
    # 查询 age为3 或者 age为 18 两个 都不满足的 其他文档
    
  • **\(and** {\)and:[条件1,条件2]} 是指 所有条件都满足,就为真

  • **\(or**{\)or:[条件1,条件2]} 是指 条件1和条件2有一个满足,就为真

删除remove

语法:

db.collection.remove(查询表达式, 选项)

1: 查询表达式依然是个json对象 {age:20}

2: 查询表达式匹配的行,将被删掉.

3: 如果不写查询表达式,collections中的所有文档将被删掉

举例:

1.删除学生age小于18的所有信息

db.stu.remove({age:{$lt:18}})

2.删除学生age小于18的所有信息,只删除一行

db.stu.remove({age:{$lt:18},true})
posted @ 2020-02-20 22:33  水一RAR  阅读(147)  评论(0编辑  收藏  举报