MongoDB学习笔记——集合管理

时间:2022-11-07 17:23:45

创建集合

使用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,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。

autoIndexID

布尔

(可选)如为 true,自动在 _id 字段创建索引。默认为 false。

size

数值

(可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。

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学习笔记——集合管理的更多相关文章

  1. MongoDB学习笔记—权限管理

    1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...

  2. MongoDB学习笔记——索引管理

    索引 索引能够提升查询的效率.没有索引,MongoDB必须扫描集合中的所有文档,才能找到匹配查询语句的文档. 索引是一种特殊的数据结构,将一小块数据集保存为容易遍历的形式.索引能够存储某种特殊字段或字 ...

  3. MongoDB学习笔记(二)--Capped集合 && GridFS存储文件

    Capped集合                                                            Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...

  4. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  5. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  6. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  7. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  8. MongoDB 学习笔记&lpar;原创&rpar;

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  9. MongoDB学习笔记(六)--复制集&plus;sharding分片 &amp&semi;&amp&semi; 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

随机推荐

  1. shell 中的与、或表达式

    今天总结一下linux shell中逻辑关机表达方式.逻辑与的表达: 1).if [ $xxx=a -a $xx=b ] 注:-a表示and的意思 2).if [ $xxx=a ] &&amp ...

  2. iOS UIWebView重定向Cookie

    // 1. 取出当前的cookies NSArray<NSHTTPCookie *> *cookies = [NSHTTPCookieStorage sharedHTTPCookieSto ...

  3. 根据屏幕大小动态设置字体rem

    1.根据屏幕大小动态设置字体rem var docEl = document.documentElement, //当设备的方向变化(设备横向持或纵向持)此事件被触发.绑定此事件时, //注意现在当浏 ...

  4. 检测Insert、Capslock、NumLock、ScrollLock状态键的状态

    unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  5. Leetcode OJ &colon; Repeated DNA Sequences hash python solution

    Total Accepted: 3790 Total Submissions: 21072     All DNA is composed of a series of nucleotides abb ...

  6. 本大神教你用PHP把文本内容转换成16进制数字,进行加密

    <?php $a="杨波"; $b = bin2hex($a); echo $a."<br />"; $c = pack("H*&q ...

  7. expect&colon; spawn id exp4 not open

    spawn rsync -avH --delete /home/dwetl/bin dwetl@10.128.8.151:/home/dwetl/bin sending incremental fil ...

  8. Jquery&plus;ajax&plus;json&plus;servlet原理和Demo

    Jquery+ajax+json+servlet原理和Demo 大致过程: 用户时间点击,触发js,设置$.ajax,开始请求.服务器响应,获取ajax传递的值,然后处理.以JSON格式返回给ajax ...

  9. XMLHttpRequest&period;withCredentials 解决跨域请求头无Cookie的问题

    查看原文 XMLHttpRequest.withCredentials  属性是一个Boolean类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者 ...

  10. axios 中文文档(转载)

    axios中文文档 转载来源:https://www.jianshu.com/p/7a9fbcbb1114 原始出处:lewis1990@amoy axios 基于promise用于浏览器和node. ...