MonGodb数据库相关命令

数据库操作

一、查看所有的数据库

  show db  /  show databases

二、查看当前正则使用的数据库

  db   # (默认正在使用test数据库)

三、创建数据库 / 切换数据库

  use  # (若没有此数据库 自动创建)

四、删除数据库(当前)

  db.dropDatabase()

集合相关

一、查看当前数据中的集合

  show collcetion

二、创建集合

  1. 自动创建集合

      #  向不存在的集合中第一次加入数据时,集合会被创建出来
    
  2. 手动创建集合

      格式: db.createCollection(集合名称,集合中文档数据)
    
      不加数据: db.createCollection("jh_name")
    
      加数据: db.createCollection("jh_name", { key : value } )
    

三、删除数据

  db.集合名称.drop()

文档相关

一、常见类型

  • Object ID: ⽂档ID
  • String: 字符串, 最常⽤, 必须是有效的UTF-8
  • Boolean: 存储⼀个布尔值, true或false
  • Integer: 整数可以是32位或64位, 这取决于服务器
  • Double: 存储浮点值
  • Arrays: 数组或列表, 多个值存储到⼀个键
  • Object: ⽤于嵌⼊式的⽂档, 即⼀个值为⼀个⽂档
  • Null: 存储Null值
  • Timestamp: 时间戳, 表示从1970-1-1到现在的总秒数
  • Date: 存储当前⽇期或时间的UNIX时间格式

二、注意:

  • 每个⽂档都有⼀个属性, 为==_id==,保证每个⽂档的唯⼀性,mongodb默认使用_id作为主键。可以⾃⼰去设置_id插⼊⽂档,如果没有提供,那么MongoDB为每个⽂档提供了⼀个独特的_id, 类型为objectID

MonGodb 增删改查

一、增加数据

MongoDB 可用insert()或 save()两种方法向集合中插入文档

  1. insert()

     db.集合名称.insert(document)
    
  2. save()

    db.集合名称.save(document)
    

两个方法区别在于insert()在插入数据主键重复时会报错,而save()不会报错会自动将重复进行改成

二、查询数据

 db.集合名称.find({}).pretty()    # pretty()可以格式化查询出的数据,加与不加都可以

三、 数据更新

 db.集合名称.update(<query> ,<update>,{multi: <boolean>})
  • 参数query:查询条件
  • 参数update:更新操作符
  • 参数multi:可选, 默认是false,表示只更新找到的第⼀条记录, 值为true表示把满⾜条件的⽂档全部更新
  1. 查询到的第1条用新的文档进行覆盖

     db.集合名称.update({name:'原数据'},{name:'新数据'})
    
  2. 指定键值更新操作

     db.stu.update({name:'原数据'},{$set:{name:'原数据'}})
    
  3. 更新全部

     db.stu.update({},{$set:{gender:0}},{multi:true})
    

注:$set是方式数据修改后直接覆盖

四、删除

	db.集合名称.remove(<query>,{justOne: <boolean>})
  • 参数query:可选,删除的⽂档的条件
  • 参数justOne:可选, 如果设为true或1, 则只删除⼀条, 默认false, 表示删除多条

进阶查询

一、比较运算符

  • 等于: 默认是等于判断, 没有运算符
  • ⼩于:$lt (less than)
  • ⼩于等于:$lte (less than equal)
  • ⼤于:$gt (greater than)
  • ⼤于等于:$gte
  • 不等于:$ne

二、逻辑运算符

and:在json中写多个条件即可

# 查询年龄⼤于或等于18, 并且性别为true的人
db.stu.find({age:{$gte:18}, gender:true})

or:使⽤$or, 值为数组, 数组中每个元素为json

# 查询年龄⼤于18或性别为男⽣, 并且姓名是XX
db.stu.find({$or:[{age:{$gt:18}},{gender:true}], name:"XX"}).pretty()

三、范围运算符

使⽤$in, $nin 判断数据是否在某个数组内

例如:
# 查询年龄为18、 30的人
db.stu.find({age:{$in:[18,30]}})

四、支持正则表达式

使⽤//或$regex编写正则表达式

例如:
# 查询以“X”开始的信息
db.stu.find({name:/^X/}).pretty()

五、指定域查询

# 只输出name和age域,第一个参数为查询条件,空代表查询所有
db.stu.find( {}, { name: 1, age: 1 } )

# 默认_id是显示的,可以通过设为0不显示
db.stu.find( {}, { name: 1, age: 1 ,_id:0} )

# 如果需要输出的字段比较多,不想要某个字段,可以用排除字段的方法
# 不输出内容字段,其它字段都输出
db.stu.find({}, {_id:0})

六、自定义查询

  • 由于mongo的shell是一个js的执行环境 使⽤$where后⾯写⼀个函数, 返回满⾜条件的数据

     # 查询30岁以上的人
     db.stu.find({
      	$where:function() {
     		return this.age>30;
     	}
     })
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值