zoukankan      html  css  js  c++  java
  • 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,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
    当该值为 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

    查询当前数据库中所有集合

  • 相关阅读:
    MySQL数据库返回影响行数的实际操作流程
    nslookup命令
    Mysql Strict Mode
    mysql表大小写
    Objective-C消息转发
    NSDateFormatter 和 NSDateComponents 的用法
    提交app的时候总是报出icon的错误
    IOS 的loadView 及使用loadView中初始化View注意的问题。(死循环并不可怕)
    [[NSMutableArray alloc] init];和[[NSMutableArray alloc] initWithCapacity:0]区别
    NSMutableArray初始化崩溃问题
  • 原文地址:https://www.cnblogs.com/AlvinLee/p/6062733.html
Copyright © 2011-2022 走看看