此文章主要记录部分主要的 MongoDB 的 DDL 操作。

  • db  查看当前所在的数据库(默认 test)

    > db
    test
    >
  • show dbs  查看当前数据库服务器上的数据库名字
    > show dbs
    admin (empty)
    local 0.078GB
    mydb 0.078GB
    test (empty)
    >
  • use dbSchema 切换到名为 dbSchema 的数据库上下文
    > use mydb
    switched to db mydb
    >

    当名为 dbSchema 不存在时,创建该数据库,使用 use 创建的数据库如果没有保存数据的话,在 switch 到其他数据库时,该空的数据库将别删除。

  • db.dropDatabase() 删除当期所在的数据库
    > db.dropDatabase()
    { "dropped" : "test2", "ok" : 1 }
    >
  • db.stats()  查看 database 的状态
    > db.stats()
    {
    "db" : "mydb",
    "collections" : 3,
    "objects" : 6,
    "avgObjSize" : 80,
    "dataSize" : 480,
    "storageSize" : 24576,
    "numExtents" : 3,
    "indexes" : 1,
    "indexSize" : 8176,
    "fileSize" : 67108864,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
    "major" : 4,
    "minor" : 5
    },
    "extentFreeList" : {
    "num" : 2,
    "totalSize" : 262144
    },
    "ok" : 1
    }
    >
  • show collections  查看当前数据库内的集合
    > show collections
    collect
    system.indexes
    >
  • db.collection.stats()  查看集合的状态
    > db.collect.stats()
    {
    "ns" : "mydb.collect",
    "count" : 2,
    "size" : 224,
    "avgObjSize" : 112,
    "storageSize" : 8192,
    "numExtents" : 1,
    "nindexes" : 1,
    "lastExtentSize" : 8192,
    "paddingFactor" : 1,
    "systemFlags" : 0,
    "userFlags" : 1,
    "totalIndexSize" : 8176,
    "indexSizes" : {
    "_id_" : 8176
    },
    "ok" : 1
    }
    >
  • db.createCollection(name,options)  创建集合
    db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean>, size: <number>, max: <number>} )
    > db.createCollection(
    ... "test",
    ... {
    ... capped: true,
    ... autoIndexId: true,
    ... size: 1024
    ... })
    { "ok" : 1 }
    >

    name: 集合的名字
    capped: 是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,如果你要开启 size,max 的限制,需要开启 capped
    size: 限制集合使用空间的大小,默认为没有限制
    max: 集合中最大条数限制,默认为没有限制
    autoIndexId: 是否使用_id作为索引,默认为使用(true或false)
    size的优先级比max要高

  • db.yourColl.drop() 删除集合
    > db.test.drop()
    true
    >
  • db.collection.ensureIndex(keys, options)  创建索引
    db.ensureIndex(keys, {background: <Boolean>, unique: <Boolean>, name: <String>, dropDups: <Boolean>, sparse: <Boolean>, expireAfterSeconds: <Integer>, v: <Index version>} )
    keys: 索引对{field:1},1表示升序,-1表示降序
    background: 是否在后台创建索引, false 在创建索引时将会阻断其他操作,但效率更高
    unique:是否唯一索引
    name:索引名
    dropDups:创建唯一索引,并删除重复值,散列索引中无效
    sparse:是否使用 sparse 索引
    expireAfterSeconds:TTL 索引的过期时间,过期后将自动删除。TTL 集合时是有限制的: (1)你不能创建 TTL 索引,如果要索引的字段已经在其他索引中使用。(2)索引不能包含多个字段。(3)索引的字段必须是一个日期的 bson 类型。
    v: 索引版本号
    > db.yourColl.ensureIndex({
    "username": 1
    },
    {
    unique: true
    })
    {
    "createdCollectionAutomatically" : false,
    "numIndexesBefore" : 1,
    "numIndexesAfter" : 2,
    "ok" : 1
    }
    >
  • db.collection.getIndexes()  查询索引
    > db.yourColl.getIndexes()
    [
    {
    "v" : 1,
    "key" : {
    "_id" : 1
    },
    "name" : "_id_",
    "ns" : "mydb.yourColl"
    },
    {
    "v" : 1,
    "unique" : true,
    "key" : {
    "username" : 1
    },
    "name" : "username_1",
    "ns" : "mydb.yourColl"
    }
    ]
    >

    如果需要查询系统中全部的索引,可以使用db.system.indexes.find()函数

  • db.collection.dropIndex(index)  删除某一索引
    index:可以是索引名,也可以是某一确定某一索引的文档,例如对于上文中的的索引可以同样可以通过 “username_1”,也可以通过“{username:1}”删除同一个索引。
    > db.yourColl.dropIndex({username:1})
    { "nIndexesWas" : 2, "ok" : 1 }
    >
  • db.collection.dropIndexes()  删除指定集合的全部索引
    > db.yourColl.dropIndexes()
    {
    "nIndexesWas" : 2,
    "msg" : "non-_id indexes dropped for collection",
    "ok" : 1
    }
  • db.collection.reIndex()  删除某集合上的所有索引然后重建
    > db.yourColll.reIndex()
    {
    "nIndexesWas" : 2,
    "nIndexes" : 2,
    "indexes" : [
    {
    "key" : {
    "_id" : 1
    },
    "name" : "_id_",
    "ns" : "mydb.yourColl"
    },
    {
    "unique" : true,
    "key" : {
    "username" : 1
    },
    "name" : "username_1",
    "ns" : "mydb.yourColl"
    }
    ],
    "ok" : 1
    }
    >

MongoDB 入门之基础 DDL的更多相关文章

  1. MongoDB 入门之基础 DCL

    此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...

  2. MongoDB 入门之基础 DML

    此文章主要记录部分主要的 MongoDB Collection 的 DML 操作. 文章中的 Collection 名字为 yourColl,每一次操作包含以下两条初始数据 { "_id&q ...

  3. MongoDb 入门教程

    MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...

  4. MongoDB入门实践

    MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...

  5. mongodb入门篇

    MongoDB 入门篇 分类: NoSQL, 故障解决 undefined 1.1 数据库管理系统 在了解MongoDB之前需要先了解先数据库管理系统 1.1.1 什么是数据? 数据(英语:data) ...

  6. 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用

    在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...

  7. MongoDB入门三:MongoDB shell

    MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...

  8. Mongodb FAQ fundamentals(基础篇)

    Mongodb FAQ(基础篇),是官方文档的翻译.如有翻译不到之处,还请谅解. 1.Mongdb是什么数据库? mongodb是一个面向文档(document)的数据库,既不支持表连接,也不支持事务 ...

  9. MongoDB 入门之查询(find)

    MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...

随机推荐

  1. September 8th 2016 Week 37th Thursday

    The secret of high-impact business is early preparation. 高效商务,赢在未雨绸缪. Early and best preparation is ...

  2. 备忘zookeeper(单机+伪集群+集群)

    #下载: #单机模式 解压到合适目录. 进入zookeeper目录下的conf子目录, 复制zoo_sample.cfg-->zoo.cfg(如果没有data和logs就新建):tickTime ...

  3. innodb之超时参数配置

    可参考:http://www.penglixun.com/tech/database/mysql_timeout.html 下面内容摘取自上面这个链接. connection_timeout,只是设置 ...

  4. Swift - 懒加载(lazy initialization)

    Swift中是存在和OC一样的懒加载机制的,在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间 懒加载 格式: lazy var 变量: 类型 = { 创建变量代码 }() 懒 ...

  5. DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)

    转自:http://www.360doc.com/content/14/0116/16/15528092_345730642.shtml 以及参考网络. 首先,我们先了解一下内存的大体结构工作流程,这 ...

  6. CocoaPods 安装

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...

  7. 超好用的plsql设置

    http://blog.itpub.net/24496241/viewspace-740917/

  8. ArchLinux 安装笔记 --zz

    为何安装 ArchLinux 为了更深层次的理解 Linux (其实只是闲的蛋疼 准备安装介质 U盘首选,没有之一.自己的本子是 MBR 的,UEFI 神马的我才不知道呢哼! 制作 U 盘启动: Li ...

  9. 游戏主循环(Game Loop)

    游戏主循环是游戏的心跳,一般使用while循环进行主动刷新. 一次循环由获取用户输入.更新游戏状态.处理AI.播放音乐和绘制画面组成. 这些行为可以分成两类: update_game(); // 更新 ...

  10. js onclick="return test()"事件返回值,对有些事件,会影响默认动作的执行。如:onclick和onsubmit

    onclick="return test()"事件返回值,对有些事件,会影响默认动作的执行.如:onclick和onsubmit <body> <!--事件返回值 ...