今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的。

数据库

数据库是一个物理容器集合。每个数据库都有自己的一套文件系统上的文件。一个单一的MongoDB服务器通常有多个数据库。

集合

集合是一组MongoDB的文档。它相当于一个RDBMS表。收集存在于一个单一的数据库。集合不执行模式。集合内的文档可以有不同的领域。通常情况下,一个集合中的所有文件是相同或相关的目的。

文档

文档是一组键 - 值对。文件动态模式。动态模式是指,在相同集合中的文档不需要具有相同的字段或结构组的公共字段的集合的文档,可以容纳不同类型的数据。

关系型数据库与MongoDB的对比

看到这个表我想你对MongoDB也一定有自己的认识了。

MongoDB支持许多数据类型的列表下面给出:

  • String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。

  • Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。

  • Boolean : 此类型用于存储一个布尔值 (true/ false) 。

  • Double : 这种类型是用来存储浮点值。

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

  • Arrays : 使用此类型的数组或列表或多个值存储到一个键。

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

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

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

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

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

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

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

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

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

下面开始真正的操作MongoDB

show dbs : 查看数据库列表

use 命令 :该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库。

use myMongo   (创建的数据库myMongo 列表中是不存在的。要显示的数据库,需要把它插入至少一个文件,如:db.test.insert({name:"张三",age:"18"}))

dropDatabase() 方法  : db.dropDatabase() 命令是用来删除一个现有的数据库。它将删除选定的数据库。如果还没有选择任何数据库,然后它会删除默认的 ' test' 数据库

createCollection() 方法  : db.createCollection(name, options) 是用来创建集合. name是集合的名称。options是一个文件,用于指定配置的集合

show collections : 可以查看创建的集合列表

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

drop() 方法 : db.collection.drop() 是用来从数据库中删除一个集合。

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

insert() 方法 : 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法。

这里用了两种查询方法,下面会介绍的.这里你可以看我我插入了一个数组["MongoDB","python","hadoop"]

这里 myCollection1是集合的名称。如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。我们也可以插入数组,道理是一样的,你可以自己试试。

插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。_id 是12个字节的十六进制数,唯一一个集合中的每个文档.

find() 方法 : 查询集合数据,find() 方法将在非结构化的方式显示所有的文件。pretty() 方法将以格式化的方式显示数据。

    上边的例子已经展示了。除了find() 方法外,还有一个 findOne() 法,返回一个文件。

下面做下条件查询:RDBMS Where子句和MongoDB等同语句

      

      AND用法

      

      OR用法

       

Limit() 方法和skip()方法一般结合使用可用作分页: 要限制 MongoDB 中的记录,需要使用 limit() 方法。 limit() 方法接受一个数字型的参数,这是要显示的文档数。skip()方法也接受数字类型的参数,并使用跳过的文档数

       

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

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

  2. justOne : (可选)如果设置为true或1,然后只删除一个文件。如果有多个记录且要删除的只有第一条记录,那么设置remove()方法中justOne参数

  3. 如果不指定删除条件,然后MongoDB将从集合中删除整个文件

Update() 方法 : 更新文档  ,若要更新多个需要设置参数置'multi' 为true

sort() 方法 : 接受一个文档,其中包含的字段列表连同他们的排序顺序。要指定排序顺序1和-1。 1用于升序排列,而-1用于降序。请注意,如果不指定排序优先,然后sort() 方法将文档显示在升序排列。

      

转自:http://www.cnblogs.com/jianjianyang/p/4950603.html

30分钟让你了解MongoDB基本操作的更多相关文章

  1. 30分钟让你了解MongoDB基本操作(转)

    今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...

  2. Nodejs新手村指引——30分钟上手

    概要 #准备工作 #开启简单的服务 #路由 #获取参数的三种方式 #静态文件 #数据库集成 #async解决多重嵌套问题 本文适合没有nodejs项目开发经验而又想对nodejs有个大概了解的你阅读, ...

  3. 30分钟学会XAML

    1.狂妄的WPF 相对传统的Windows图形编程,需要做很多复杂的工作,引用许多不同的API.例如:WinForm(带控件表单).GDI+(2D图形).DirectX API(3D图形)以及流媒体和 ...

  4. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

  5. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  6. 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world

    2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...

  7. 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  8. 30分钟?不需要,轻松读懂IL

    先说说学IL有什么用,有人可能觉得这玩意平常写代码又用不上,学了有个卵用.到底有没有卵用呢,暂且也不说什么学了可以看看一些语法糖的实现,或对.net理解更深一点这些虚头巴脑的东西.最重要的理由就是一个 ...

  9. 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)

    前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...

随机推荐

  1. asp.net post方法;对象转json

    [System.Web.Services.WebMethod()]     public static string GetPoints(string userId)     {         st ...

  2. 【Cocos2d入门教程七】三分钟看懂Cocos2d坐标系

    无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥搞头了.所以玩cocos2d,一上来就需要先把各种与坐标有关的东西搞清楚. 1.OpenGL坐标系 Cocos2d-x使用的是O ...

  3. 最新app源码下载:200款优秀Android项目源码

    200款优秀Android项目源码!菜鸟必备!Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他 ...

  4. Mysql增加主键或者更改表的列为主键的sql语句

                                                                                                        ...

  5. 剑指offer_面试题11 数值的整数次方_考察代码的完整性

    测试通过代码: package t0825; public class Power { public static void main(String[] args){ System.out.print ...

  6. C#判断Textbox是否为数字

    第一种方法: try { ) { //操作代码 } else { MessageBox.Show("必须是正整数"); } } catch (FormatException) { ...

  7. response.redirect和server.Transfer的差别详解

    Response.Redirect和Server.Transfer都能实现页面的跳转,但两者又有很大区别. 一 地址栏里显示的地址不同 Response.Redirect会显示跳转的网页的地址,而Se ...

  8. sql2000下如何新建并使用dbml

    默认新建的dbml只是支持sql2005及其以上版本. 但是现在是sql2000怎么办?我要是想要用linq to sql 的? 解决方案如下: 1首先打开cmd,在其中cd到sqlmetal.exe ...

  9. sass最佳实践

    sass 变量 可以实现统一的布局,比如统一的内边距,统一的外边距,统一的颜色,统一的字号. 嵌套 可以根据组件的嵌套方式来嵌套css代码,方便收缩,查找.代码结构非常清晰,有利于以组件的方式开发 混 ...

  10. c#跨窗体调用操作

    我知道的常用的有三种,以前记录的笔记: 1.通过构造函数实现 在form1的load事件中new form2时  在构造函数里添加一个参数 此参数就是form1类型的参数,同时记得在form2里重写构 ...