mongodb学习(2)

mongodb的命令(版本号:3. 4. 24)


一、对数据库操作
//1.查看当前数据库
db
//2.查看所有数据库(如果数据库里面没有任何集合,不显示)
show dbs 
//3.切换到已存在的库(若不存在,则创建),name是数据库名
use name
//4.查看当前数据库
db.getName()
//5.当前数据库状态
db.stats()
//6.查看当前数据库的连接
db.getMongo()
//7.删除当前数据库
db.dropDatabase()

二、对数据库里面的集合操作
1. 增加集合(有两种方式)

方式一: 用命令创建集合

>db.createCollection(“集合名字”, 可选配置)

// 可选配置可以创建满足一定要求的集合:下面的例子规定文档最大是100,条目最大也是100
db.createCollection(“sowing”,  { size: 100, max:100} )

在这里插入图片描述

方式二: 直接往集合里面插入数据

//second_db是集合的名字,向某个集合中插入数据时,如果没有该集合首先会创建一个集合。
db.second_db.insert({"name":"html"})

在这里插入图片描述

2. 删除集合
db.sowings.drop()

在这里插入图片描述

3. 查看集合

show tablesshow collections都可以。
在这里插入图片描述


三、对集合里面的文档进行操作(每个版本的mongodb的操作都不一样,需要看官方文档)
1. 增加文档(有两种方式)

方式一: insert

// 插入一条,返回值中不包含insertedIds
db.second_db.insert({"name":"华晨宇"})        
// 批量插入,返回值中不包含insertedIds
db.second_db.insert([{"name":"华晨宇"},{"name":"花花"}])  
// 插入一条,返回值返回插入的insertedIds
db.second_db.insertOne({"name":"华晨宇"}) 
// 批量插入,返回值中包含insertedIds
db.second_db.insertMany([{"name":"华晨宇"},{"name":"花花"}])  

方式二 save() : 如果要插入的文档没有指定_id,则插入文档,如果指定_id,如果集合中不包含_id,则插入文档,如果集合中已经存在相同的id值,则更会整体替换。

 > db.second_db.save({ "_id" : 1, "name" : "这是个name"})
 //WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 1 })
 > db.second_db.save({ "_id" : 1, "name" : "这个name会被更改"})
//WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
2. 删除文档
// 删除满足条件的所有数据
db.second_db.remove({"name":"华晨宇"})
//WriteResult({ "nRemoved" : 9 })

//删除满足条件的第一条数据
db.second_db.remove({"name":"华晨宇"},true)

//清空集合中的所有文档
db.second_db.remove({})

//findAndModify可以用来插入或更新、也可以用来删除,下面这个例子,query是匹配条件,remove属性为true, 匹配到之后删除。
db.users.findAndModify({
     "query": {"name": "华晨宇"},
     "remove": true
  })
3. 更改文档

db.collection.update({query}, {update}, {upsert: true/false, multi: true/false})

参数说明

  • qeury:查询条件。
  • updata:更新的操作符(如$,$inc…)等。
  • upsert:如果不存在替换的记录,true为插入,默认是false,不插入。
  • multi:只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新,默认为false,不更新。

下面对一些常见的操作符进行举例说明

//$set:修改器修改指定字段, 当字段不存在时会创建并赋值
db.second_db.update({"name": "华晨宇"}, {$set: {"age": 30}})

//$unset:用于删除字段
db.second_db.update({"name": "华晨宇"}, {$unset: {"age": 18}})

// 整体替换
db.second_db.update({"name": "华晨宇"}, {"name": "花花"})

// 第三个参数: 插入或者更新,当name不存在的时候插入,当name值存在的时候更新
db.second_db.update({"name": "华晨宇"}, {"name": "花花", "age": 22}, true)
4. 查找文档
//query是查询的条件,projection是为查询指定属性
db.second_db.find({query},{projection})
db.second_db.find({"age": {$lt: 20}})

//.pretty()可以格式化输出的结果
db.second_db.find().pretty()

//查询单个查询和多个查询
db.second_db.findOne({query},{projection})
db.second_db.findMany({query},{projection})

//操作符:$lt(小于);$lg(大于)
db.second_db.find({"age": {$lt: 13}})

//查询指定的属性,1:代表要查询的字段,0:代表不要查询的字段 
db.second_db.find({"age": {$lt: 33}}, {"_id":0, "name": 1, "age": 1})

//多个条件直接用逗号分开
db.second_db.find({"age": {$lt: 30}, "_id": {$lt: 3 }})

// 同一个属性多个条件
db.second_db.find({"age": {$gt: 15, $lt:20 }})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值