MongoDB数据库的使用

《MongoDB》的操作

20.操作数据库

20.1查看所有数据库
格式:  show dbs;
20.2创建数据库
格式:  use 数据库名;
注意:
    如果数据库不存在则创建数据库,否则切换到指定的数据库  
    如果数据库刚刚创建,使用show dbs指令其实看不到新创建的数据库,这是因为数据库中没有数据而不被显示。如果想显示需要给数据库中插入一些数据。
---------------------------------------------------------------------------------- 
20.3查看当前数据库
查看当前使用的数据库:  
           格式:
                db
                db.getName()
----------------------------------------------------------------------------------
20.4删除数据库
删除数据库:
           格式:
               db.dropDatabase()
           注意:
               当前正在使用那个数据库则删除那个数据库,db代表当前正在使用的数据库
---------------------------------------------------
20.5断开链接
断开链接:
           格式:
               exit

21操作集合

21.1查看当前数据库下所有集合
格式:
 show collections
21.2创建集合
方式1.
 db.createCollection("集合名称")
 db.createCollection("grades")
--------------------------------------------------------------------- -----------=
方式2.
 db.集合名称.insert(文档)
 db.students.insert({"name": "sunck", "age": 18, "hobbys": ["money", "power"]}
----------------------------------------------------------------------------------
区别:
 方法1创建一个空集合,方法2创建一个空集合后并向集合添加一个文档
21.3删除集合
格式:db.集合名称.drop()

22操作文档

22.1增
1.insert()
格式:  db.集合名称.insert(文档)
示例:
     添加一个   db.students.insert({"name": "sunck", "age": 18})
     添加多个   db.students.insert([{"name": "tom1", "age": 10},{"name": "tom2", "age": 19}])
----------------------------------------------------------------------------------
2.save()
格式:   db.集合名称.save(文档)
示例:     
      db.students.save({"name": "tom3", "age": 20})
      db.students.save([{"name": "tom4", "age": 14},{"name": "tom5", "age": 17}])
----------------------------------------------------------------------------------
注意:
 如果不指定_id字段save()方法类似于insert()方法,如果指定_id字段,则会更新该_id字段的数据内容
 db.students.save({"_id": ObjectId("5c777b0738302fe0c93365c4"),"name": "tom3", "age": 22})
22.2删
remove()
格式:
db.集合名称.remove(
 {query}
 {
     justOne: <boolean>,
     writeConcern: <document>
 }
)
----------------------------------------------------------------------------------
说明:
 query    可选参数,删除的条件
 justOne  可选参数,如果为true,则只删除一个文档
 writeConery  可选参数,抛出异常的级别
----------------------------------------------------------------------------------
示例:
 db.students.remove({name:"sunck"})
 db.students.remove({age:19},{justOne:true})
22.3改
update()
格式:
db.集合名称.update(
 <query>,
 <update>,
 {
     upset: <boolean>,
     multi:<boolean>,
     writeConcern: <document>
 }
)
----------------------------------------------------------------------------------
参数说明:
     query  修改的查询条件,类似mysql中的update后面的where后面的条件语句
     update 一些更新的操作($set 表示设置    $inc 表示叠加)
     upsert 可选参数,如果不存在update的记录,是否插入该数据??true为插入,默认为False不插入
     multi 可选参数,默认为False,只更新找到的第一条数据,如果为True则更新全部匹配的数据
     writeConcern
---------------------------------------------------------------------------------- 
示例:
db.students.update({name:"tom1"},{$set:{age:20}})
db.students.update({age:27},{$set:{name:"tom50"}},{multi:true})
db.students.update({name:"tom1"},{$inc:{age:2}})
db.students.update({_id:ObjectId("5c778017fd42e8c9efdd1311")},{$set:{name:"tom20"}},{upsert:true})
----------------------------------------------------------------------------------
save()
作用:
 通过传入的文档替换已有文档
格式:
 db.集合名称.save(
 <document>
)
22.4查
22.4.1查询文档
1.查询文档
find()
方法一:
   db.集合名称.find()
   查询集合中的所有文档
方法二:
db.集合名称.find(
 {
     query
 },
 {
     key1: 1,
     key2: 1,
     ……
     keyn:1
 }
)
参数说明:
    query  查询条件
    key    要显示的字段,1表示显示
示例:
  db.students.find({age:27})
  db.students.find({age:27},{name:1})
---------------------------------------------------
pretty()
作用:   以格式化的方式来显示查询到的文档
示例:   db.students.find({age:27}).pretty()
---------------------------------------------------
findOne()
作用:    匹配结果中的第一条数据
示例:
       db.students.findOne({age:27})
       db.students.findOne()     
22.4.2查询条件操作符
数学运算符:
符号:
      >    $gt
      <    $lt
      >=   $gte
      <=   $lte
  格式:
      db.集合名称.find({key:{操作符:值}})
  示例:
      db.students.find({age:{$gt:30}})
---------------------------------------------------
联合使用>=与<=
示例:db.students.find({age:{$gte:20, $lte:30}}
---------------------------------------------------
等号
符号: ==
格式:db.集合名称.find({key:值})
---------------------------------------------------
使用_id进行查询
db.集合名称.find({_id:ObjectId("值")})
---------------------------------------------------
查询某个字段中是否包含另一个值
格式:  db.集合名称.find({key:/value/})
示例:  db.students.find({name:/6/})
---------------------------------------------------
查询某个字段是否以另一个值开头
格式:db.集合名称.find({key:/^value/})
示例:db.students.find({name:/^tom1/})
22.4.3聚合:
count()
查询某个结果集的数据条数
db.students.find({name:/^tom1/}).count()
22.4.4查询条件and和or
and
find()中输入多个键,每个键以逗号分隔
db.students.find({age:27, name:"tom50"})
---------------------------------------------------
or
db.集合名称.find(
 {
     $or: [
         {key1: value1},
         {key2: value2},
         ……
         {keyn: valuen}
     ]
 }
)
示例:
db.students.find({$or:[{age:{$lt:20}},{age:{$gt:40}}]})
---------------------------------------------------
and和or联合使用
db.集合名称.find(
 {
     key1: value1,
     key2: value2,
     $or:[
         {key1: value1},
         {key2: value2}
     ]
 }
)
22.4.5limit和skip
limit()
作用: 读取指定条数的记录
示例: db.students.find().limit(2)
---------------------------------------------------
skip()
作用: 跳过指定数量的数据
示例: db.students.find().skip(2)
---------------------------------------------------
分页
db.students.find(3).skip(2)
22.4.6排序
格式:db.集合名称.find().sort({key:值})
说明:
 key:排序的字段
 值:1 升序       -1降序
示例:
 db.students.find().sort({age:1})
 db.students.find().sort({age:1, name:-1})

23 Pymongo模块

作用:代码操作	Mongo DB数据库
安装:sudo pip install pymongo
示例:
from pymongo import MongoClient

# 连接服务器
# 参数1:服务器IP
# 参数2:端口
conn = MongoClient("www.sunck.wang", 27017)

# 连接数据库
db = conn.py1901

# 获取集合
students = db.students


students.insert({"name": "tom100", "age": 18})
students.insert([{"name": "tom101", "age": 18},{"name": "tom102", "age": 18}])

# 断开连接
conn.close()
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值