MongoDB 入门之基础 DDL
此文章主要记录部分主要的 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的更多相关文章
- MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...
- MongoDB 入门之基础 DML
此文章主要记录部分主要的 MongoDB Collection 的 DML 操作. 文章中的 Collection 名字为 yourColl,每一次操作包含以下两条初始数据 { "_id&q ...
- MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
- mongodb入门篇
MongoDB 入门篇 分类: NoSQL, 故障解决 undefined 1.1 数据库管理系统 在了解MongoDB之前需要先了解先数据库管理系统 1.1.1 什么是数据? 数据(英语:data) ...
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- Mongodb FAQ fundamentals(基础篇)
Mongodb FAQ(基础篇),是官方文档的翻译.如有翻译不到之处,还请谅解. 1.Mongdb是什么数据库? mongodb是一个面向文档(document)的数据库,既不支持表连接,也不支持事务 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
随机推荐
- [Android Pro] Android Fragment getActivity返回null解决
overide FragmentActivity onSaveInstanceState method like this. @Override public void onSaveInstance ...
- 在springMVC的controller层获取view层的参数的方式
方法一:request.getParameter("name") 方法二:注解@RequestParam @RequestMapping("testRequestPara ...
- Redis基础命令
redis本身不区分命令的大小写,这里一律用小写,以下是部分简单的命令. 1.连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查 ...
- apache ab下载测试
http://httpd.apache.org/docs/2.0/programs/ab.html-->http://httpd.apache.org/docs/current/platform ...
- StoryBoard和代码结合 按比例快速兼容iPhone6/6 Plus教程
转:http://www.cocoachina.com/ios/20141230/10800.html 编者注:根据网友们的评论,文章中的方法有很大的局限性,请谨慎使用! 现在由于苹果公司出了6和6 ...
- Cocoapods的安装报错 - Error installing pods:activesupport requires Ruby version >=2.2.2
1.打开终端 2 移除现有 Ruby 默认源 输入以下指令 $gem sources --remove https://rubygems.org/ 3.使用新的源 输入以下指令 $gem source ...
- Android手绘效果实现
效果图 原理 大概介绍一下实现原理.首先你得有一张图(废话~),接下来就是把这张图的轮廓提取出来,轮廓提取算法有很多,本人不是搞图像处理的,对图像处理感兴趣的童鞋可以查看相关资料.如果你有好的轮廓提取 ...
- c#将http调用返回额json中的有关中文的unicode转换为中文(转)
转转地址:http://www.cnblogs.com/promise-7/archive/2012/11/05/2755515.html 中文转Unicode:HttpUtility.UrlEnco ...
- 从 Eclipse 迁移至 Android Studio
从 Eclipse 迁移至 Android Studio 本文内容 Android Studio 基础知识 迁移先决条件 将项目导入 Android Studio 后续步骤 将项目迁移至 Androi ...
- JavaScript之作用域与闭包详解
前言: JavaScript是一种应用非常广泛的语言,其也有一些自身特点和优势,本文重在讲述其作用域机制以及闭包,会从一些实例来探讨其机理. 作用域在JavaScript程序员日常使用中有不同的含义, ...