此文章主要记录部分主要的 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. C#4.0图解教程 - 第24章 反射和特性 - 1.反射

    24.1 元数据和反射 有关程序及类型的数据被成为 元数据.他们保存在程序集中. 程序运行时,可以查看其他程序集或其本身的元数据.一个运行的程序查看本身元数据或其他程序的元数据的行为叫做 反射. 24 ...

  2. MVC – 9.mvc整体请求流程

    1.请求管道 2~5微软自己的验证,我们一般不用. 在全局配置文件中-已经配置一个路由过滤器-为第7个事件注册了路由方法   1.在application_start中向静态路由表注册了路由数据,在管 ...

  3. Genymotion刷入谷歌应用市场以及获取root权限

    Genymotion刷入谷歌应用市场以及获取root权限 - 推酷http://www.tuicool.com/articles/rEV3aa6 刷入gapp, arm框架,supersu的包要注意, ...

  4. python中最简单的多进程程序

    学着.. #!/usr/bin/env python # -*- coding: utf-8 -*- # Spawn a Process: Chapter 3: Process Based Paral ...

  5. java创建线程的几种方式

    1.继承Thread类 /** * @author Ash * @date: 2016年8月6日 下午10:56:45 * @func: 通过继承Thread类来实现多线程 * @email 4086 ...

  6. 缓慢变化维 (Slowly changing dimension)

          维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成"缓慢变化维",经常被简写为SCD.缓慢变化维的提出是因为在现实世 ...

  7. sqlplus 中spool命令的简单用法

    spool基本格式: spool 路径+文件名 select col1||','||col2||','||col3||','||col4||'..' from tablename; spool off ...

  8. 面试题之【打印1到最大的N位数】

    题目描述:给定一个数字N,打印从1到最大的N位数. 看起来像是很简单的问题(虽然实际也不是很难...)我们很容易写出这样的代码: #include<iostream> #include&l ...

  9. linux驱动程序设计的硬件基础,王明学learn

    linux驱动程序设计的硬件基础(一) 本章讲总结学习linux设备程序设计的硬件基础. 一.处理器 1.1通用处理器 通用处理器(GPP)并不针对特定的应用领域进行体系结构和指令集的优化,它们具有一 ...

  10. WCF服务寄宿应用程序

    1.先创建一个WCF服务库 2.创建一个Console控制台,服务将寄宿在该应用程序上,该程序一旦关闭,服务将停止. 控制台代码: using System; using System.Collect ...