mongoDB数据库的介绍与使用

mongoDB数据库


1.什么是数据库?
  • 数据库是按照数据结构来组织、存储和管理数据的仓库
2.数据库的分类
  • 关系型数据库:Access mySql SqlServer Oracle db2等
  • 非关系型数据库:MongoDB Redis HBase CouchDB等
3.MongoDB 的特点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要特性有:

  • 面向集合存储,易存储对象类型的数据。
  • 模式自由
  • 支持动态查询
  • 支持完全索引,包含内部对象
  • 支持查询
  • 支持复制和故障恢复
  • 使高效的二进制数据存储,包括大型对象( 如视频等 )。
  • 自动处理碎片,以支持云计算层次的扩展性
  • 支持PHP RUBY JAVA C++ PYTHON 等多种语言
  • 支持文件存储格式为BSON( 一种JSON的扩展 )
4.BSON

BSON是一种类似json的二进制形式的存储格式,简称 Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Dateh和BinData类型
BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。
BSON有三个特点:轻量性、可遍历性、高效性。

5.非关系型数据库与关系型数据库区别

非关系数据库的优势:
1.性能
NOSQL 是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQLc层的解析,所以性能非常高。
2.可扩展
同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展
关系型数据库的优势
1.复杂查询
可以用SQL语句方便的在多个表之间做非常复杂的数据查询
2.事物支持
使得对于安全性能很高的数据访问要求得以实现
总结:

  • 数据库功能是用来存储数据得
  • 数据库分为关系型数据库和非关系型数据库
  • 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档
  • 非关系数据库文件存储格式为BSON( 一种JSON得扩展 )
6.mongoDB的基本使用
6.1 基本命令

1.help 帮助命令
2.show dbs显示数据库列表
3.use dbname 若数据库不存在则创建,存在则切换到目标数据库

6.2数据增加

1.db.web.save({ “name”:“老李”}) 创建了名为web的集合,并新增了一条{“name”:“老李”} 的数据
db.web.insert({“name”:“ghost”, “age”:10})    在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建
save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容

6.3删除操作

1、删除文档

2、删除集合

3、删除数据库

  • db.users.remove({})    删除users集合下所有数据

  • db.users.remove({“name”: “lecaf”})   删除users集合下name=”lecaf”的数据

  • db.users.drop()或db.runCommand({“drop”:“users”})    删除集合users

  • db.runCommand({“dropDatabase”: 1})    删除当前数据库,注意 此处的1没加双引号。

6.4数据查找
  • db.users.find()    查找users集合中所有数据

  • db.users.findOne()    查找users集合中的第一条数据

  • db.users.find().pretty()   格式化查询到的数据

  • db.users.find({}{}) 0表示筛选结果不显示,1表示筛选结果显示

6.5修改数据
  • db.web.update({“name”:“a1”}, {“age”:10})    修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容,主键不能修改
7高级命令
7.1条件查找
  • db.collection.find({ “key” : value })    查找key=value的数据.

  • db.collection.find({ “key” : { $gt: value } })    key > value

  • db.collection.find({ “key” : { $lt: value } })    key < value

  • db.collection.find({ “key” : { $gte: value } })    key >= value

  • db.collection.find({ “key” : { $lte: value } })    key <= value

  • db.collection.find({ “key” : { $gt: value1 , $lt: value2 } })   value1 < key

  • db.collection.find({ “key” : { $ne: value } })    key <> value

  • db.collection.find({ “key” : { $mod : [ 10 , 1 ] } })    取模运算,条件相当于key % 10 == 1
    即key除以10余数为1的

  • db.collection.find({ “key” : { $in: [ 1, 2, 3 ] } })    属于,条件相当于key等于[ 1, 2, 3 ]中任何一个.

  • db.collection.find({ “key” : { $nin: [ 1, 2, 3 ] } })    不属于,条件相当于key的值不属于[
    1, 2, 3 ]中任何一个

  • db.collection.find({ “key” : { KaTeX parse error: Expected 'EOF', got '}' at position 9: size: 1 }̲ })    size 数量、尺寸,条件相当于key对应的值的数量是1(值必须是数组)

  • db.collection.find({ “key” : { $exists : true|false } })    
    $exists 字段存在,true返回存在字段key的数据,false返回不存在字段key的数据

  • db.collection.find({ KaTeX parse error: Expected 'EOF', got '}' at position 26: … 1}, {b : 2} ] }̲)   符合两个条件中任意一个…or语法表示或的意思。 (注意:MongoDB 1.5.3后版本可用),符合条件a=1的或者符合条件b=2的数据都会查询出来。

  • db.singer.insert({“name”:“test2”,score:{“yy”:80,“sx”:79,“wy”:95}})
    此数据的score对应的值是一个对象。

7.2排序
  • db.collection.find().sort({ “key1” : -1 ,“key2” : 1 })    这里的1代表升序,-1代表降序

你可能感兴趣的:(数据库)