本文章主要介绍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.安全操作:

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

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

  

MongoDB 数据库、集合创建删除与文档插入的更多相关文章

  1. MongoDB学习笔记三—增删改文档上

    插入insert 单条插入 > db.foo.insert({"bar":"baz"}) WriteResult({ }) 批量插入 > db.fo ...

  2. 在.NET Core中使用MongoDB明细教程(1):驱动基础及文档插入

    MongoDB,被归类为NoSQL数据库,是一个以类JSON格式存储数据的面向文档的数据库系统.MongoDB在底层以名为bson的二进制编码格式表示JSON文档,MongoDB bson实现是轻量级 ...

  3. mongodb数据库集合操作

    1:更新update update() 方法用于更新已存在的文档.语法格式如下: db.collection.update( <query>, <update>, { upse ...

  4. MongoDB查询或修改内嵌文档

    作为非关系型数据库中的佼佼者,MongoDB一大优势在于能够在一条文档中存储对象类型的数据,适当增加冗余来让数据库更好用.文档中一个对象类型的字段在MongoDB中被称为内嵌文档(Embedded) ...

  5. MongoDB学习笔记四—增删改文档下

    $slice 如果希望数组的最大长度是固定的,那么可以将 $slice 和 $push 组合在一起使用,就可以保证数组不会超出设定好的最大长度.$slice 的值必须是负整数. 假设$slice的值为 ...

  6. MongoDB(7)- 文档插入操作

    插入方法 db.collection.insertOne() 插入单条文档到集合中 db.collection.insertMany() 插入多条文档到集合中 db.collection.insert ...

  7. powerdesigner连接postgresql数据库生成pdm及word文档

    1.准备软件: powerdesigner165与postgresql的驱动:psqlodbc_11_01_0000 2.安装并破解完成powerdesigner165 参看链接:https://ww ...

  8. Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录

    此为在网络上找来的,觉得很好! 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令来切割日志 ps -def | grep ...

  9. 段合并 segments merge 被删除的文档的删除时间

    2.5 段合并 每个索引分为多个“写一次,读多次”的段 write once and read many times  segments 建立索引时,一个段写入磁盘以后就不能更新:被删除的文档的信息存 ...

随机推荐

  1. svn不是内部或外部命令?

    svn不是内部或外部命令? 我的系统是Win7, [计算机]-->右键[属性]-->[高级系统设置]-->[环境变量]-->[系统变量 (S)]-->[Path]--&g ...

  2. AC日记——飞行员配对方案问题 洛谷 P2756

    题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外 ...

  3. IDEA重新打jar包时报错MANIFEST.MF already exists in VFS

    报错原因:曾经打过jar包了,把之前的包删掉无用,VFS:虚拟文件系统.即使删掉之前的包,信息依然会在此处.故删掉MANIFEST文件夹,重新打包即可解决.

  4. JavaScript 中那些关于坐标和距离的属性与方法

    一 前言 在前端开发中总会遇到各种各样需要使用或计算坐标和距离的情况,但是这些属性和方法众多,全部熟练地记下来并非是一件易事,大多只能现查,耗费不少时间精力,于是便有了整理记录的想法,即加深了印象,又 ...

  5. chattr&chown&cat&cut&useradd&passwd&chage&usermod

    1.用chattr命令防止系统中某个关键文件被修改 chattr +i /etc/resolv.conf chattr -i /etc/resolv.conf 要想修改此文件就要把i属性去掉 lsat ...

  6. Flink起步安装和使用

    下载安装 下载地址 下载对应操作系统和版本的flink  # 首先确认下Java环境 $ java -version  java version "1.8.0_111" Java( ...

  7. TIdHTTPServer制作REST中间件

    TIdHTTPServer制作REST中间件 使用DELPHI7+INDY9开发 // 陈新光 2017-2-21// LIS数据同步服务器// 浏览器输入:http://127.0.0.1:8000 ...

  8. 7.【nuxt起步】-Nuxt与后端数据交互

    接下来就是对接服务端接口,展示真实的数据 1.做了个虚拟接口地址:http://test.yms.cn/testjson.asp 输出数据: { "title": "单间 ...

  9. epoll 浅析以及 nio 中的 Selector

    首先介绍下epoll的基本原理,网上有很多版本,这里选择一个个人觉得相对清晰的讲解(详情见reference): 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作 ...

  10. 深入理解vue路由的使用

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的页面应 ...