1.关系型和非关系型的介绍 mongodb
relational 关系型 数据库
关系数据库很强大,可是他并不能很好的应付全部的应用场景。MySQL的扩展性查,大数据IO压力大,表结构更改困难数组
MongoDB 非关系型服务器
易扩展,大数据量高性能,灵活的数据模型,高可用app
2.mongodb的优点性能
①易扩展:NoSQL数据库种类繁多,可是一个共同特色都是去掉关系数据库的关系型特性。数据之间无关系,这样就很是容易扩展大数据
②大数据量,高性能:NoSQL数据可都具备很是高的读写性能,尤为在大数据量下,一样表现优秀。这得益于他的无关系性,数据可的结构简单进程
③灵活的数据模型:NoSQL无需事先为要存储的数据创建字段,随时能够存储定义的数据格式。而在关系数据库里,增删字段是一件很是麻烦的事情。若是是很是大数据量的表,增长字段简直就是一个噩梦。ip
3.mongodb安装rem
下载地址:
https://www.mongodb.com/download-center/community
必定要下载zip文件
解压后放到c:\MongoDB
4.客户端mongo
启动本地客户端:mongo
查看帮助:mongo -help
退出:exit或者ctrl+c
5.关于database的基础命令
查看当前数据库:db
查看全部的数据库:show dbs /show databases
切换数据库:use db_name
删除当前数据库:db.dropDatabase()
6.关于集合的基础命令
不手动建立集合:向不存在的集合中第一次加入数据时,聚合会被建立出来
手动建立集合:
db.createCollection(name,options)
db.createCollection("student")
db.createCollection("sub",{capped:true,size:10})
参数capped:默认值为false,表示不设置上线,值为true表示设置上线
参数size:当capped值为true时,须要制定此参数,表示上线大小,当文档 达到上线时,会将以前的数据覆盖,单位为字节
查看集合:show collections
删除集合:db.集合名称.drop()
7.数据类型
object ID:文档ID
string:字符串,最经常使用,必须是有效地UTF-8
Boolean:存储一个布尔值,true或false
integer:整数能够是32位或64位,这取决于服务器
double:存储浮点数
arrays:数组或列表,多个值存储到一个键
object:用于嵌入式的文档,即一个值为一个文档
null:存储null值
timestamp:时间戳,表示从1970-1-1到如今的总秒数
date:存储当前日期或时间的UNIX时间格式
注意点:
①建立日期语句以下:参数的格式为YYY-MM-DD
new Date("2017-12-20")
②每一个文档都有一个属性,为_id,保证每一个文档的惟一性
③能够设置_id插入文档,若是没有提供,那么mongoDB为每一个文档提供了一个独特的_id,类型为objectID
④objectID是一个12字节的十六进制数前四个字节为当前的时间戳,接下来字节的机器ID,接下来两个字节中mongoDB的服务进程id,最后三个字节是简单的增量值
8.
①插入:db.集合名称.insert(document)
插入文档时,若是不指定——id参数,mongoDB会为文档分配一个惟一的objectID
②保存:db.集合名称.save(ocument)
若是文档_id已经存在则修改,若是文档的_id不存在则添加
③简单的查询:db.集合名称.find()
④更新:db.集合名称.update(<query>,<update>,{multi:<boolean>})
参数query:查询条件
参数update:更新操做符
参数multi可选:默认是false,表示只更新找到第一条记录,值为true,表示吧安祖条件的文档所有更新
db.student.update({name:"hr"},{name:"mnc"})更新一条
db.student.update({name:"hr"},{$set:{name:"hys"}})更新一条
db.studnt.update({},{$set:{gender:0},{multi:true}})更新所有
⑤删除:db.集合名称.remove(<query>,<justOne:<boolean>>)
参数query:可选,删除的文档的条件
参数justOne:可选,若是设为true或1,则只删除一条,默认为false,表示删除多条
⑥数据查询:方法find():查询
db.集合名称.find(条件文档)
方法findOne():查询,只返回第一个
db.集合名称.findOne(条件文档)
方法pretty():将结果格式化
db.集合名称.find({条件文档}).pretty