MongoDB 4.0.10 基本操作

  • MongoDB shell 原生方法和构造函数
1 Date()                 # 创建一个Date对象
2 _isWindows()           # 判断是否为Windows操作系统
3 version()              # 返回当前MongoDB shell实例的版本
4 hostname()             # 返回当前运行MongoDB shell实例的主机
5 getMemInfo()           # 返回一个文档,指出MongoDB shell当前占用的内存量
6 _rand()                # 返回一个0-1的随机数
7 ObjectId()             # 生成一个ObjectId("5d32e4f123270a8bed29e995")
  • Connection对象:用于数据库的连接
  • Database对象:用于对数据库进行操作
  • Collection对象:表示MongoDB数据库中的集合,使用其来操作集合中的文档
1 var myConn = new Mongo("localhost:27018")    // 连接数据库
2 var myDB = myConn.getDB("shop")          // 获取shop数据库
3 var myColl= myDB.getCollection("goods")     // 获取goods集合
4 myDB.stats()                                  // 查看数据库状态
5 myColl.stats()                    // 查看集合状态
6 myDB.getName()                    // 获取数据库名称
  • 基本操作命令
    • 当创建文档时,如果文档所在的集合或者数据库不存在则会自动创建数据库和集合,use指令可以使用没有创建的数据库
 1 mongo                       // 进入MongoDB交互模式,默认连接test
 2 db                          // 显示当前数据库对象或集合
 3 show dbs                    // 显示所有数据库列表
 4 show databases              // 显示所有数据库列表
 5 show users                  // 显示数据库中所有用户
 6 
 7 use <dbname>                // <dbname>是数据库名,进入到指定数据库
 8 db.getSiblingDB(<dbname>)   // <dbname>是数据库名,进入到指定数据库
 9 
10 show collections            // 显示数据库中所有的集合
11 show tables                 // 显示数据库中所有的集合
12 db.getCollectionNames()     // 显示数据库中所有的集合,返回一个列表
13 
14 db.createCollection(name, options)    // 在该数据库上创建一个collection
15 /* 可选参数options参数
16 capped:布尔类型,如果为true,则创建固定大小的集合,必须指定size参数;
17 autoIndexId:布尔类型,如果为true,则自动在_id字段上创建索引,默认为false
18 size:数值类型,为固定大小的集合指定一个最大值,如果capped为true,需要指定该属性的值,单位KB
19 max:数值类型,指定固定集合中包含文档的最大数量 */
20 db.createCollection(name, {capped:true,size:10000,max:1000}) //创建固定集合
21 db.<collection>.isCapped()                    // 判断是否为固定集合
22 db.<collection>.convertToCapped(maxBytes)     // 将已存在的集合转换为固定集合
23 
24 db.<collection>.drop()                       // 删除集合,<collection>为集合名
25 db.getCollection(<collection>).drop()         // 删除集合,<collection>为集合名
26 
27 db.help()                                     // 查询数据库上的方法帮助
28 db.dropDatabase()                             // 删除数据库
29 db.copyDatabase(fromdb, todb, fromhost)       // 复制数据库,fromdb:源数据库,todb:目标数据库,fromhost:可选、源数据库主机名
30 db.runCommand(<命令>)                          // 执行数据库命令,它与shell和驱动程序直接提供一致的接口
31 db.collection.help()                          // 查询集合上的方法
32 db.<collection>.renameCollection(newName,<dropTarget>)        // 重命名集合,newName:新名字,格式为db.collection;dropTarget:可选,如果为true,则删除同名数据库
33 db.<collection>.validate(true)                // 检查数据库,传入参数true以执行更加详细的检查
34 db.runCommand({profile:2,slowms:100})         // 剖析数据库操作,profile:0不剖析、1只剖析较慢的操作、2剖析所有操作;slowms:代表超过100ms的操作视为判断缓慢操作的标准
35 db.system.profile.find()                      // 查询剖析信息
36 db.<collection>.find().explain()              // 查询执行计划
37 db.runCommand({top:1})                        // 执行诊断命令top,只能在admin数据库执行
  • 固定集合的优点
    • 固定集合保证按插入顺序排列文档,查询时不需要使用索引就能按存储顺序返回文档,避免了建立索引的开销
    • 固定集合禁止执行导致文档增大的更新,以保证文档在磁盘的存储顺序与插入顺序相同,这避免了移动文档以及管理文档新位置的开销
    • 固定集合达到指定大小时,如果写入新文档,它自动删除集合中最旧的文档
  • 固定集合的限制:更新文档时,不能导致它比插入到集合时的文档大;不能删除固定集合中的文档
posted @ 2020-08-15 22:37  陨落的星尘  阅读(324)  评论(0编辑  收藏  举报