mongodb 基本使用

mongodb 说明:
1, mongodb 强调的是集合 collection 集合 就是平常所说的数据库表
2, 插入数据 就是创建集合的过程 就像 use mydb 就是创建数据库的过程
3, mongodb是一个介于关系数据库和NoSQL之间的产品,也是功能最丰富、最像关系数据库的的NoSQ
4, MongoDB使用的是内存映射存储引擎,它会把磁盘IO操作转换成内存操作,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,大幅度提升性能
数据库操作!
5,一款为web应用程序和互联网基础设施设计的数据库管理系统
6,MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表
7,MongoDB保留了关系型数据库即时查询的能力,保留了索引(底层是基于B tree)的能力
8,MongoDB 采用的是 c/s 模型 客户机和服务器模式类型
9, mongodb 提供了很多性能监视工具,用于分析数据库操作的性能
10,mongodb 支持大型的二进制文件储存 可以将图片甚至是视频存储到内存之中
11,mongodb 支持 节点复制 可以从子节点复制主节点的数据 主节点数据可以立即同步到子节点
数据库操作!
# 产看当前的数据库名称
 db;

 #查看所有数据库(物理上存在的数据库!)
 # 只有数据库之中有数据 才显示
 show dbs;
 show databases;

 # 如果指定的数据库 mydb 不存在 就会创建数据库 mydb
 use mydb

 #删除当前指向的数据库,如果数据库不存在,则什么也不做
 # 删除数据库的方式 是进入数据库 然后使用以下命令
 # db 代表的是 mydb
 db.dropDatabase()
collection 操作
 # 查看当前数据库所有的集合
 show collections

 # 创建集合 sxu
 # 如果不指定 _id 那么就会创建一个 _id 第二个参数 是为数据库设置限制 比如内存最大 6142800字节
 db.createCollection("mycol", {capped : true, autoIndexId : true, size : 6142800, max : 10000 })
 # 集合插入数据 集合不存在那么就会新建集合
 db.sxu.insert({'name':'xiaoming','age':'12'})

 # 查找sxu集合之中的所有数据!
 db.sxu.find()

 # 删除集合 sxu
 db.sxu.drop()
集合数据操作:
'''
集合数据类型:
    ObjectID:文档ID
    String:字符串,最常用,必须是有效的UTF-8
    Boolean:存储一个布尔值,true或false json的 Boolean
    Integer:整数可以是32位或64位,这取决于服务器
    Double:存储浮点值
    Arrays:数组或列表,多个值存储到一个键
    Object:用于嵌入式的文档,即一个值为一个文档 也就是字典
    Null:存储Null值
    Timestamp:时间戳,表示从1970-1-1到现在的总秒数
    Date:存储当前日期或时间的UNIX时间格式
'''

   #插入操作 没有指定 _id 就会创建一个 _id 是主键
   db.sxu.insert({name:'gj',gender:1,datetime:Date('2017-12-20'),likes:['sleep','dreak']})
   # 使用 save() 如果 _id 存在就会修改 不存在就会新增
   # 如果使用 inser() 下面会报错 因为主键是唯一的
   db.sxu.insert({'_id':'100',name:'xiaohong'})
   db.sxu.save({'_id':'100',name:'xiaohong1'})


   #更新集合 将 包含 name:xiaohong1 的 name:'xiaozhao'
   # 这个操作是替换 也就意味着 原来的除了 name:xiaohong1 的 其他都会删除
   db.sxu.update({name:'xiaohong1'},{name:'xiaozhao'})
   # 这个操作 才是更新操作 保存其他的值
   db.sxu.update({name:'xiaohong'},{$set:{name:'xiaozhao'}})
   # 以上的更新只是更新一条 设置 multi:true 那么表示更新所有
   db.sxu.update({name:'xiaozhao'},{$set:{name:'xiaozhao1'}},{multi:true})


   #删除集合
   # 设置 justOne:true 表示只删除一条
   db.sxu.remove({name:'xiaozhao1'},{justOne:true})
   # 不设置 justOne:true 表示只删除所有
   db.sxu.remove({name:'xiaozhao1'})
mongodb 数据的备份与恢复:
1,恢复与备份是在终端命令操作的
# 数据备份
    mongodump -h dbhost -d dbname -o dbdirectory
    '''
        -h:服务器地址,也可以指定端口号
        -d:需要备份的数据库名称
        -o:备份的数据存放位置,此目录中存放着备份出来的数据
    '''
    sudo mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak

    # 数据的恢复
    mongorestore -h dbhost -d dbname --dir dbdirectory
    '''
        -h:服务器地址
        -d:需要恢复的数据库实例
        --dir:备份数据所在位置
    '''
    mongorestore -h 192.168.196.128:27017 -d test2 --dir ~/Desktop/test1bak/test1

 

posted @ 2018-10-17 20:56  十七楼的羊  阅读(157)  评论(0编辑  收藏  举报