mongodb入门

一、mongodb

  mongodb是一种开源的,免费的非关系型数据库(NoSql)。它具有速度快使用简单,数据格式与json对应,等特点,最大的特点在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现对数据库的操作。mongodb下载地址为:http://www.mongodb.org/downloads 。

  安装如下:

  在下载页面选择适合的版本,这里使用的版本是windows版本mongodb-win32-i386-2.4.12。将该压缩文件解压到C:\mongobd 目录下。并在C盘目录下创建data/db目录(windows班mongodb中用于存放数据文件的路径)。

  启动:

  cmd中进入C:\mongodb\bin目录下,执行命令mongod.exe,mongodb数据库即可启动。

  连接mongodb

  cmd中进入C:\mongodb\bin目录下,执行命令mongo.exe,即可连接mongodb数据库。

二、mongodb数据结构

  mongodb不存在表,记录等概念与通常的关系型数据库有些差异。mongodb有如下几个概念:

  数据库:与关系型数据库类似,可以在mongodb中创建多个数据库。

  集合:可类比成关系型数据库中的表。只是表中的记录字段都是一样,而集合中存储的文档的结构可以是不同的。例如两个文档的结构不一致,仍然是可以存储的。集合存储中数据库中。

  文档:可类比成关系型数据库中表中的字段。文档主要存储在集合中。多个键(以key-value值的形式)及其关联的值有序的放置在一起就是文档。在mongodb中使用一种类json的bson存储数据。

  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 : 用于存储正则表达式

三、相关操作

  1、数据库

show dbs  -- 查看所有数据库
use test  -- 创建的数据库test列表中是不存在的。要显示的数据库,需要把它插入至少一个文件。可执行如下命令: db.movie.insert({"name":"tutorials point"})
db.dropDatabase() -- 删除数据库

  2、集合

show collections -- 该数据下查看所有集合
db.createCollection("person") -- 创建person集合
db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } ) -- 创建mycol集合并设置相关属性
db.person.drop(); -- 删除集合

  3、文档

    a、添加:调用mongodb的 insert() 或 save() 方法。

db.person.insert({name:"lisi", age :20, gender: "femail",  tags: [‘mongodb‘, ‘database‘, ‘NoSQL‘]}); -- 在person集合中添加集合
db.person.insert([{name:"lisi2", age :21, gender: "femail",  tags: [ ‘database‘, ‘NoSQL‘]},{name:"lisi2", age :22, gender: "mail",  tags: [‘mongodb‘, ‘database‘]}]); -- 在person集合中添加集合
db.person.save({name:"lisi4", age :19, gender: "mail",  tags: [‘mongodb‘, ‘NoSQL‘]}); -- 在person集合中添加集合

      使用insert(),save()添加文档时,如果集合不存在会自动创建集合。

    b、修改:可调用update()方法,方法定义如下:

      db.COLLECTION_NAME.update( criteria, objNew, upsert, multi )
      criteria : update的查询条件,类似sql update查询内where后面的。
      objNew : 要更新的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
      upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
      multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

db.person.update({name:"zhangsan3"}, {$set : {age : 22}}) --  修改

    c、查询:使用find()方法

db.person.find().pretty() -- 查询全部,并按格式输出
db.person.find();-- 查询全部
db.person.find({age:20}); -- 查询年龄为20的文档
db.person.find({age:20, "name":"zhangsan"}); -- and使用,查询age为20且name为zhangsan的文档
db.person.find({$or:[{"name":"zhangsan2"} ,{age:20}]}) -- or使用,查询aname为zhangsan2或者ge为20的文档

     其他相关查询条件语法如下:

    小于:语法为 {<key>:{$lt:<value>}},如db.person.find({"age":{$lt:50}})
    小于或等于:{<key>:{$lte:<value>}},如 db.person.find({"age":{$lte:50}})
    大于:{<key>:{$gt:<value>}},如db.person.find({"age":{$gt:50}})
    大于等于:{<key>:{$gte:<value>}}db.person.find({"age":{$gte:50}})
    不等于:{<key>:{$ne:<value>}} db.person.find({"age":{$ne:50}})

    d、删除:使用remove()方法

db.person.remove({age:20}); -- 删除年龄为20的文档
db.person.remove({age:20},1); -- 删除年龄为20的文档第一个,1,justOne参数
db.person.remove() -- 删除所有

四、其他命令

  1、查询过滤

    1表示显示name,0表示不显示_id.

  db.person.find({},{"name":1,_id:0})

  2、limit

db.person.find().limit(2); -- 只显示两个文档

  3、skip

db.person.find().limit(1).skip(1);  -- 只显示第二个文档。

  4、sort

db.person.find().sort({age:1}); -- 文档按照age,升序排列

  排序顺序1升序,-1逆序。

时间: 2024-12-20 08:21:38

mongodb入门的相关文章

MongoDB入门必读(概念与实战并重)

MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝

MongoDB入门学习(三):MongoDB的增删查改

对于我们这种菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改. 因为MongoDB存储数据都是以文档的模式,所以在操作它的数据时,也是以文档为单位的.那么我们实现增删查改也是以文档为基础,不知道文档是什么的同学可以看看上篇介绍的基本概念. 1.插入文档 向MongoDB集合中插入文档的基本方法是insert: 单个插入 > document = {key : value} > db.collecti

MongoDB入门学习(四):MongoDB的索引

上一篇讲到了MongoDB的基本操作增删查改,对于查询来说,必须按照我们的查询要求去集合中,并将查找到的结果返回,在这个过程中其实是对整个集合中每个文档进行了扫描,如果满足我们的要求就添加到结果集中最后返回.对于小集合来说,这个过程没什么,但是集合中数据很大的时候,进行表扫描是一个非常恐怖的事情,于是有了索引一说,索引是用来加速查询的,相当于书籍的目录,有了目录可以很精准的定位要查找内容的位置,从而减少无谓的查找. 1.索引的类型 创建索引可以是在单个字段上,也可以是在多个字段上,这个根据自己的

MongoDB入门学习(二):MongoDB的基本概念和数据类型

上一篇讲了MongoDB的安装和管理,其中涉及到了一些概念,数据结构还有一些API的调用,不知道的没关系,其实很简单,这篇会简单介绍一下. 1.文档 文档是MongoDB的核心概念,多个键值对有序的放在一起就是一个文档,文档是MongoDB存储数据最基本的数据结构.对MongoDB都是以文档的形式来操作的,使用了一种类似JSON的二进制BSON数据格式,对API的调用都是传的文档参数.每种编程语言都有标示文档的数据结构,比如java的map,lua的table,python的dict等等,但是都

Ruby2.3.3操作MongoDB入门(Mongo驱动版本2.4.3)-先期准备&数据库连接创建

最近在学习MongoDB的相应知识,涉及到使用Ruby操作MongoDB数据库,因为参考数据中使用的Ruby Mongo驱动版本不是2.3.3,所以在操作方面会有所不同,因此撰写了这篇Ruby2.3.3操作MongoDB入门,学习方式是参考网址https://docs.mongodb.com/ruby-driver/v2.3/quick-start/ 快速学习主要分为以下几个部分: 先期准备 1.1 本地启动MongoDB数据库,端口号27017 Windows环境下启动方式如下:首先CMD命令

MongoDb 入门教程

MongoDb 入门教程 目录 MongoDb的基本数据结构 安装MongoDb服务器 连接MongoDb服务器 MongoDb创建数据库 MongoDb创建表 MongoDb插入数据 MongoDb查询数据 范围操作符 AND操作符 OR操作符 排序 聚合 MongoDb更新数据 MongoDb删除数据 常用的DDL命令 MongoDb图形化工具 总结 参考资料 MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数

MongoDB 入门之基础 DCL

此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB 服务的注册语句,修改加入 --auth 参数,详情见MongoDB 入门之安装篇 "$MONGODB_HOME\bin\mongod.exe" --config "$MONGODB_HOME\mongo.cfg" --install --auth C:\Windows

mongodb入门很简单(3)

 ##简单的mongodb入门命令## 1.show dbs;      //查看当前数据库 2.use databaseName;         //选库 3.show tables/collections;           //查看数据库中有哪些表 4.db.help();              //查看一些对database的操作命令 5.mongodb的库是隐式创建的,我们可以use一个不存在的库,然后在改库下创建collection,即可创建库: 例如:db.createCo

mongodb入门命令-创建表数据(二)

1.mongodb入门命令 1.1 show databases; 或 show dbs; //查看当前的数据库 > show dbs; admin 0.000GB config 0.000GB local 0.000GB 1.2 use databaseName  选择库 show tables/collections 查看当前库下的collections 1.3 如何创建库 mongodb 的库是隐式创建,你可以use一个不存在的库 然后在该库下创建collection,即可创建库 1.4 

Nodejs学习笔记(十)--- 与MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门

目录 简介 MongoDB安装(windows) MongoDB基本语法和操作入门(mongo.exe客户端操作) 库操作 插入 查询 修改 删除 存储过程 nodejs操作MongoDB 插入 查询 修改 删除 调用存储过程 写在之后... 简介 MongoDB 开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序:高伸缩性: NoSQL毕竟还处于发展阶段,也有说它的各种问题的:http://coolshell.cn/articles/5826.html  官网地