优势:支持超大规模数据存储;数据模型非常灵活
劣势:不支持事务的强一致性;缺乏底层理论基础作为支撑
关系型数据库应用在银行关键业务系统,NoSQL适用于其他
分类:(1)键值数据库
(2)列族数据库
(3)文档数据库
(4)图数据库
CAP:一致性、可用性、分区容忍性。
放弃可用性而保证一致性和分区容忍性的:Neo4j,Bigtable ,Hbase,MongoDB,HyperTable,Redis
NewSQL与OldSQL均属于关系型数据库模型。
MongoDB:介于关系型数据库与NoSQL之间。
RDS,Azure:相当于介于NewSQL与OldSQL之间。
NewSQL:分析型应用.例如RDS,Azure。具有另外两种的优点。
OldSQL:事务性应用
NoSQL:互联网应用
mongo的查询语句的用法:
db.student.find() #查询所有记录。相当于:select * from student
db.student.find({sname: 'lisi'}) #查询sname='lisi'的记录。相当于: select * from student where sname='lisi'
db.student.find({},{sname:1, sage:1}) #查询指定列sname、sage数据。相当于:select sname,sage from student。sname:1表示返回sname列,默认_id字段也是返回的,可以添加_id:0(意为不返回_id)写成{sname: 1, sage: 1,_id:0},就不会返回默认的_id字段了
db.student.find({sname: 'zhangsan', sage: 22}) #and 与条件查询。相当于:select * from student where sname = 'zhangsan' and sage = 22
db.student.find({$or: [{sage: 22}, {sage: 25}]}) #or 条件查询。相当于:select * from student where sage = 22 or sage = 25