本文分为以下四块简单介绍非关系型数据库MongoDB:1.MongoDB简介、2.MongoDB和关系数据库对比、3.MongoDB基本概念、4.mongo shell的使用以及对MongoDB的增删改查操作
Ⅰ、MongoDB简介MongoDB是一款基于分布式文件存储的数据库,是一种文档型数据库,是介于关系型和非关系型数据库之间的产品,是最接近关系型数据库的数据库。MongoDB中的每一条记录就是一个文档,是一个数据结构,由字段和值对组成,字段的值可能其他文档,数组,以及文档数组。一般用作离线数据分析使用,放在内网居多,提供高性能的数据持久化。
II、MongoDB和关系数据库对比 Ⅲ、MongoDB基本概念
集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表。
文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多)。
MongoDB的单个计算机可以容纳多个独立的数据库,每一个数据库都有自己的集合和权限。
MongoDB自带简洁但功能强大的JavaScript shell,这个工具对于管理MongoDB实例和操作数据作用非常大。
每一个文档都有一个特殊的键”_id”,它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键。
Ⅳ、mongo shell的使用以及对MongoDB的增删改查操作 ⑴ mongo shell的使用安装好MongoDB后我们开始mongo Shell:在数据库运行的情况下进入我们MongoDB的安装目录下的mongo.exe可以直接打开mongo Shell,
db :显示当前正在使用的数据库
use <db> :进行当前使用的数据库切换
show dbs :显示当前所有可用的数据库
要在不切换当前数据库访问其他的数据库使用 方法。
当切换到一个不存在的数据库在第一次插入数据时会进行数据库的创建操作
如果mongo Shell不接受我们输入的集合名称可以使用代替语法来代替:比如我们名称中包含空格或连字符”-”,或者以数字开始:若我们想要对集合名称为3test的集合进行操作则输入以下替代语法:
db[“3test”].find() 或者 db.getCollection(“3test”).find()
⑵ MongoDB数据库文档的增删改查操作 ① 插入文档:文档的数据结构和json基本一样,所存储在集合中的数据都是BSON格式(即JSON的一种二进制的存储格式,又称Binary JSON)插入文档使用如下函数:
collection表示集合的名称,插入时若此名称集合不存在则会自动创建此集合。若在插入操作中未指定_id字段,MongoDB会自动添加_id字段。
查询文档使用find方法:
db.collection.find( <query filter>, <projection> ):其中参数<query filter>是过滤条件,指明返回哪些文档,<projection> 指明返回文档的哪些字段,限制了返回数据量。
<query filter>参数的两种方式<field>:<value>形式和使用查询操作符<field1>: { <operator1>: <value1> }的形式
db.users.find( { status: "A" } ) ==> 从users集合中检索status字段值为”A”的所有文档
db.users.find( { status: { $in: [ "P", "D" ] } } ) ==> 从users集合中检索字段为”p”和”D”的所有文档
指定and条件:在集合users中查找出status等于”A”和age小于30的所有文档
db.users.find( { status: "A", age: { $lt: 30 } } )