数据库概述与MongoDB基础

1.数据库的概念

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

2.数据库的分类

数据库分为关系型数据库和非关系型数据库。

  • 关系型数据库(sql):Access mySql SqlServer oracle db2等
  • 非关系型数据库( NoSql ): MongoDB,Redis,HBase,CouchDB等。

关系型数据库 以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。表与表之间的数据记录有关系。

3.MongoDB的优点

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

  • . 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 支持复制和故障恢复。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 自动处理碎片,以支持云计算层次的扩展性。
  • 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
  • 文件存储格式为BSON(一种JSON的扩展)。
4.BSON
  • BSON是一种类似JSON的二进制形式的存储格式,简称Binary
    JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
  • BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol
    Buffer,但是BSON是一种schema【骨架】-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。
  • BSON有三个特点:轻量性、可遍历性、高效性。
5.MongoDB基础使用
5.1添加数据
db.web.save({"key":"value"})//创建了名为web的集合,并新增了一条数据
db.web.insert({"key":"value"})//在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建。
  • save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save()
    则更改原来的内容为新内容。
  • _id是主键(自动生成),主键是每条数据的唯一标识,不能重复,就像身份证是每个人唯一的编号一样。
5.2删除数据
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没加双引号。
5.3修改数据
db.web.update({"key1":"value1"}, {$set: {key2:”value2”}},true,true)//第一个参数是查找条件,第二个参数是修改内容,第三个参数为是否全匹配,第四个参数为是否全修改,主键不能修改。
5.4查询数据
db.users.find()查找users集合中所有数据
db.users.findOne()查找users集合中的第一条数据
db.users.find().pretty()格式化查询到的数据(目测无效)
db.users.find().sort({key:"1"})对匹配的数据排序,1升序,-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 <value2
db.collection.find({ "key" : { $gt: value1 , $lt: value2 } })   value1 < key <value2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值