zoukankan      html  css  js  c++  java
  • MongoDB 数据库、集合创建删除与文档插入

      本文章主要介绍mongodb的基本命令,前提条件,你的本地已经安装了mongo。

    一、基本命令使用(主要是创建,增删改。)

      0.mongoDb统计信息

      获得关于MongoDB的服务器统计,需要在MongoDB客户端键入命令db.stats()。这将显示数据库名称,阻碍收集和数据库中的文档。

      

      1.创建数据库

      命令:use 

      use DATABASE_NAME  :用户创建数据库,如果存在则使用数据库,没有则创建。

      例子:创建数据库mydb   

      >use mydb  

      >switched to db myPort 

      2.查询当前选择的数据库

      命令:db

      3.查询数据库列表

      命令:show dbs 

      注意:要显示的数据库,需要把它插入至少一个文件

      4.删除数据库

      命令: db.dropDatabase()  

      注意:删除正在使用的数据库,如果没有选择,则删除默认的test数据库

      5.创建集合

      命令:db.createCollection(name, options)

    参数 类型 描述
    Name String 要创建的集合名称
    options Document (可选)指定有关内存大小和索引选项
    字段类型描述
    capped Boolean (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
    autoIndexID Boolean (可选)如果为true,自动创建索引_id字段的默认值是false。
    size number (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。
    max number (可选)指定封顶集合允许在文件的最大数量。

        例子:

        >db.createCollection("mycollection")

        { "ok" : 1 }

        >db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )

         { "ok" : 1 }

      

      在MongoDB中,不需要创建集合。当插入一些文件 MongoDB 自动创建的集合。

      例子:

        

       6.查询集合

      命令:show collections   

      7.删除集合

      命令:db.COLLECTION_NAME.drop():从当前数据库删除某个集合。

        

      drop() 方法将返回 true,如果选择成功收集被丢弃,否则将返回 false。

      8.数据类型

      String,Integer,Boolean,Double,Arrays ,

      Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较;

      Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加;

      Object : 此数据类型用于嵌入式的文件。

       Null : 这种类型是用来存储一个Null值;

      Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用;

      Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。

      Object ID : 此数据类型用于存储文档的ID;

      Binary data : 此数据类型用于存储二进制数据;

      Code : 此数据类型用于存储到文档中的JavaScript代码;

      Regular expression : 此数据类型用于存储正则表达式。

      9.插入文档

      命令:>db.COLLECTION_NAME.insert(document)

       

      插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。

      _id 是12个字节的十六进制数,唯一一个集合中的每个文档

      save操作和insert的区别:

      如果document不指定_id 或者_id不存在 save与insert操作一致,如果存在_id,并且_id在document中已经存在,使用insert会报错,如果使用save则会替换之前的数据。

      例子:

        

      首先插入一条_id为575e262dccf718eb665437a1的文档,在用insert时会出错,禁止插入,如果使用save操作可以保存成功。

      10.删除文档

        MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria ,第二是justOne标志:

    1. deletion criteria :(可选)删除标准,根据文件将被删除。

    2. justOne : (可选)如果设置为true或1,然后只删除一个文件。

       命令:>db.COLLECTION_NAME.remove(document)

                >db.COLLECTION_NAME.remove({}) 清空所有的数据,但是不建议用,因为速度慢,性能不好,推荐的办法就是将集合删除然后重新创建集合和索引。

        例子:删除name为zzx的文档。

            

        11.更新文档

        MongoDB的 update() 和 save() 方法用于更新文档的集合。 update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法。

        11.1 update

         语法:>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

        常见的错误:查询条件匹配了多个文档,更新的时候第二个参数的存在就可能出现重复的“_id”,数据库就会报错。

        用新的文档替换查到的文档。

        使用修改器:

        通常文档只会有一部分的更新,使用原子的修改器可以高效的实现更新。

        ①“$set”修改器:

        用来指定一个键的值,就是赋值操作,如果这个键值不存在就创建,。

        例子:

            

        “$set”也可以修改键的数据类型,将某个键改成任意的数据类型。包括数组,集合,

        “$unset”:删除某个键值。

        例子:

            

         ② “$inc” 增加或者减少某个值

        用于增加已有的键值,如果没有则创建。

        例子:减少年龄三岁

          

        只能用于数字,如果用于其他会报错

        ③“$push”:数组插入

        会在已有的数组末尾添加一个元素,如果没有则创建一个数组。

        例子:

          

        ④"$addToSet":与“$push”使用方法一样,保证数据不重复

        ⑤数组的定位修改器

        如果数组有多个,我们只想修改部分,有两种方案:一、通过位置;二、定位操作符。

        upset使用

        一种特殊的更新,如果查询不到更新的数据,则创建这个文档。

        使用方法:>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA,true)

    二、瞬间完成

        以上的插入、删除、更新操作都是瞬间完成,他不需要等待服务器相应。这样有好处有坏处。好处就是快速相应,减少客户端的等待时间。坏处就是如果服务器没有将数据做好处理,或者客户端不知道服务器挂掉会一直发送数据。对于某些重要的信息还是很危险的。

        1.安全操作:

        对于某些需要数据库服务器返回结果的操作,可以使用安全版本操作。驱动程序会等待数据库相应,如果遇见错误则抛出一个可捕获的异常。

      写在后面的话:吐槽下博客园,昨天写了半天的文章,结果没有保存,电脑挂点啦。都丢失啦,都没有做自动保存 好搓!!!!!

      

  • 相关阅读:
    数据结构与算法习题总结——树结构
    SQL入门题集及学习笔记
    nlp入门系列笔记——阿里天池新闻文本新手赛
    linux一步一脚印--- ls -l 命令执行显示结果的每一列含义
    Python tuple元组---学习总结
    Python——列表深浅拷贝
    Python list列表---学习总结
    linux一步一脚印---mv命令
    linux一步一脚印---rm命令
    linux一步一脚印---cp命令
  • 原文地址:https://www.cnblogs.com/zhangzongxing01/p/5578979.html
Copyright © 2011-2022 走看看