MongoDB学习笔记——集合管理
创建集合
使用db.createCollection(name, options) 方法创建集合 name 所创建的集合名称必选! options 可选。指定有关内存大小及索引的选项
db.createCollection("mycollection")
--或
db.mycollection.insert( {
user_id: "abc123",
age: 55,
status: "A"
} )
使用db.COLLECTION_NAME.drop()方法删除集合
db.mycollection.drop()
使用db.COLLECTION_NAME.update() 方法可以修改集合结构
--添加字段
db.mycollection.update(
{ },
{ $set: { join_date: new Date() } },
{ multi: true }
)
--删除字段
db.mycollection.update(
{ },
{ $unset: { join_date: "" } },
{ multi: true }
)
使用show collections检查当前数据库集合列表
show collections
下表列出了options参数所有可用选项
字段 |
类型 |
描述 |
capped |
布尔 |
(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 |
autoIndexID |
布尔 |
(可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size |
数值 |
(可选)为固定集合指定一个最大值(以字节计)。 |
max |
数值 |
(可选)指定固定集合中包含文档的最大数量。 |
在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
固定集合
固定集合是固定大小的集合支持基于文档插入顺序的高吞吐率的插入、检索、删除操作。限制收集工作在某种程度上类似于循环缓冲区:一旦一个文档填满分配给它的空间,他将通过在限制集中重写老文档来给新文档让出空间。
固定集合能够保留插入顺序。因此,查询并不需要索引来保证以插入顺序来返回文档。减少了索引的消耗,
固定集合可以支持更高的插入吞吐。
为了为新文档腾出空间,在不需要脚本或显式删除操作的前提下,固定集合自动删除集合中最旧的文档。
固定集合有一个 _id 字段并且默认在 _id 字段上创建索引。
注意事项:
如果一个更新或替换操作改变了文档大小,操作将会失败
不能从固定集合中进行删除文档,可以使用drop() 方法来删除集合然后重新创建限制集。
固定集合不支持分片
db.createCollection( "mycache", { capped: true, size: 100000 } )
检查是否为固定集合
db.mycollection.isCapped()
使用命令convertToCapped 转换一个非限制集成为一个限制集
db.runCommand({"convertToCapped": "mycollection", size: 100000})
关系型数据库与MongoDB数据库在一些术语上的对比
关系型数据库(mysql) |
MongoDB |
备注 |
CREATE TABLE users ( id MEDIUMINT NOT NULL AUTO_INCREMENT, user_id Varchar(30), age int, status char(1), PRIMARY KEY (id) ) |
db.users.insert( { user_id: "abc123", age: 55, status: "A" } ) 或 db.createCollection("users") 如果文档中不指定``_id``列,那么会自动添加``_id``列并默认为主键 |
创建集合 |
ALTER TABLE users ADD join_date DATETIME |
db.users.update( { }, { $set: { join_date: new Date() } }, { multi: true } ) |
追加字段 |
ALTER TABLE users DROP COLUMN join_date |
db.users.update( { }, { $unset: { join_date: "" } }, { multi: true } ) |
删除字段 |
DROP TABLE users |
db.users.drop() |
删除集合 |
show tables |
show collections |
查询当前数据库中所有集合 |
MongoDB学习笔记——集合管理的更多相关文章
- MongoDB学习笔记—权限管理
1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...
- MongoDB学习笔记——索引管理
索引 索引能够提升查询的效率.没有索引,MongoDB必须扫描集合中的所有文档,才能找到匹配查询语句的文档. 索引是一种特殊的数据结构,将一小块数据集保存为容易遍历的形式.索引能够存储某种特殊字段或字 ...
- MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
Capped集合 Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- MongoDB 学习笔记(原创)
MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...
- MongoDB学习笔记(六)--复制集+sharding分片 && 总结
复制集+sharding分片 背景 主机 IP 服务及端口 Server A ...
随机推荐
- 还在抱怨JS文件里没有智能提示吗, VS10以及以上都可以 .NET
1.打开JS文件 2.编写$.我们会发现什么也没有 3.托进来 4.有了哈 保存头部代码新建JS都贴上去.
- CSS魔法堂:选择器及其优先级
一.前言 首先看看一道阿里这期网申的题目吧! 1.找出下面优先级相同的选择器 A. img.thumb:after B.[data-job="frontend"]::firs ...
- GitLab安装说明
GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用. gitlab是基于Ruby on Rails的, ...
- 第二sprint总结
总结:在第二轮sprint中,团队的开发工作出现了极大的懈怠,团队成员分配的工作完成情况较差,进度较慢,希望能在最后一周中,完成预定的功能模块 个人贡献分: 124陈彦生:22=20*5*22% 14 ...
- <转>——网络爬虫
网络蜘蛛即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页,从 网站某一个页面(通常是首页)开始,读 ...
- Winform开发框架之简易工作流设计
一讲到工作流,很多人第一反应就是这个东西很深奥,有时候又觉得离我们较为遥远,确实完善的工作流设计很多方面,而正是由于需要兼顾很多方面,一般通用的工作流都难做到尽善尽美.微软也提供了几个版本的WF框架支 ...
- 【WP8】扩展CM的WindowManager
14-09-09更新:修复AppBar冲突bug 关于WindowManager,一直都很想写一篇博客分享一下,一直在忙别的,今天抽空把这个分享一下 在弹窗在移动开发是一个很常见的交互,很多时候我们都 ...
- 学习笔记(一)——MVC扩展
1.视图引擎的作用,总结为两点: 查找视图 渲染视图 ViewEngine即视图引擎, 在ASP.NET MVC中将ViewEngine的作用抽象成了 IViewEngine 接口. 默认情况下,AS ...
- jQuery实现隐藏标签
要求:用户进入该页面时,品牌列表默认是精简显示,用户可以单击商品列表下方的“显示全部品牌”按钮来显示全部的品牌. <%@ Page Language="C#" Inherit ...
- alter语法的简单的使用
用alter语法来新增列名,修改列名,删除列