NoSQLAtitit.nosql api 标准化 以及nosql数据库的实现模型分类差异

Atitit.nosql api 标准化 以及nosql数据库的贯彻模型分类差异

 

 

1. 常用的nosql数据库MongoDB  Cassandra1

1.1. 查询> db.blogposts.find( { “author.name” : “Jane” } )1

1.2. 保存save  insert1

1.3. Update ,delete2

1.4. MongoDB 与 RDBMS Where 语句比较2

1.5. MongoDB OR 条件2

1.5.1. 实例3

1.6. AND 及 OR 联合使用3

2. 对比4

3. 参考5

 

1. Keyword

Zai json中贯彻表达式的发表,用json来表示sql的表达式

2. 常用的nosql数据库MongoDB  Cassandra

举例2:在一个关联项目数据库中,一篇博客(包含文章内容、评论、评论的投票)会叫打散在差不多布置数表中。在MongoDB中,能为此一个文档来代表无异篇博客, 评论以及投票作为文档数组,放在正文主文档中。这样数据重复易管理,消除了民俗关系项目数据库被影响属性及水准扩展性的“JOIN”操作。

 

2.1. 查询> db.blogposts.find( { “author.name” : “Jane” } )

2.2. 保存save  insert

 

> db.blogposts.save({ title : “My First Post”, author: {name : “Jane”, id :1},
  comments : [{ by: “Abe”, text: “First” },
              { by : “Ada”, text : “Good post” }]
})

 

2.3. Update ,delete

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

2.4. MongoDB 与 RDBMS Where 语句比较

一经您熟悉常规的 SQL 数据,通过下表可以另行好之知晓 MongoDB 的规范语句询问:

 

操作

格式

范例

RDBMS中的类似语句

等于

{<key>:<value>}

db.col.find({"by":"菜鸟教程"}).pretty()

where by = ‘菜鸟教程’

小于

{<key>:{$lt:<value>}}

db.col.find({"likes":{$lt:50}}).pretty()

where likes < 50

小于或等于

{<key>:{$lte:<value>}}

db.col.find({"likes":{$lte:50}}).pretty()

where likes <= 50

大于

{<key>:{$gt:<value>}}

db.col.find({"likes":{$gt:50}}).pretty()

where likes > 50

大于或等于

{<key>:{$gte:<value>}}

db.col.find({"likes":{$gte:50}}).pretty()

where likes >= 50

不等于

{<key>:{$ne:<value>}}

db.col.find({"likes":{$ne:50}}).pretty()

where likes != 50

 

 

 

2.5. MongoDB OR 条件

MongoDB OR 条件语句以了主要字 $or,语法格式如下:

>db.col.find(

   {

      $or: [

     {key1: value1}, {key2:value2}

      ]

   }).pretty()

2.5.1. 实例

以下实例中,我们演示了查询键 by 值为 菜鸟教程 或键 title 值为 MongoDB 教程 的文档。

>db.col.find({$or:[{“by”:”菜鸟教程”},{“title”: “MongoDB 教程”}]}).pretty(){

        “_id” : ObjectId(“56063f17ade2f21f36b03133”),

        “title” : “MongoDB 教程”,

        “description” : “MongoDB 是一个 Nosql 数据库”,

        “by” : “菜鸟教程”,

        “url” : “http://www.runoob.com”,

        “tags” : [

                “mongodb”,

                “database”,

                “NoSQL”

        ],

        “likes” : 100}>

 

2.6. AND 暨 OR 联合利用

以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句也: ‘where url=’http://www.runoob.com’ AND (by = ‘菜鸟教程’ OR title = ‘MongoDB 教程’)’

>db.col.find({“likes”: {$gt:50}, $or: [{“by”: “菜鸟教程”},{“title”: “MongoDB 教程”}]}).pretty(){

        “_id” : ObjectId(“56063f17ade2f21f36b03133”),

        “title” : “MongoDB 教程”,

        “description” : “MongoDB 是一个 Nosql 数据库”,

        “by” : “菜鸟教程”,

        “url” : “http://www.runoob.com”,

        “tags” : [

                “mongodb”,

                “database”,

                “NoSQL”

        ],

        “likes” : 100}

3. 对比

Cassandra 教程资料较为少,crud语句看似sql了。。不是nosql了。。

 

 

MongoDB的材料多,更加爱oo

而是百度查询MongoDB 百度为公找到相关结果约3,110,000单  

Cassandra 的数是mongodb的二元深受。。

Hbase  百度为汝找到有关结果约6,110,000单

至于hbase ,文档少,貌似比较复杂不好用。

 

4. 产卵图是NoSQL家族的进化图,我们得望这么的腾飞:Key-Value时代,BigTable时代,Document时代,全文检索时,和Graph数据库时代:

(陈皓注:注意图被SQL说之那句话,NoSQL再如此发展下去就SQL了,哈哈。)

NoSQL 1

数据模型的进步:

· Key-Value键值对存储是非常简单而强大的。下面的无数艺基本上还是依据这技能开始上扬之。但是,Key-Value有一个那个沉重的题材,那就是要我们要摸索一段落范围外的key。(陈皓注:学了hash-table数据结构的人且应明了,hash-table是勿序列容器,其并无像频繁组,链接,队列这些有序容器,我们可控制数据存储的逐条)。于是,有序键值(Ordered Key-Value)数据模型被规划下解决当下同一限量,来从根本上提高数据集的题材。

· Ordered Key-Value有序键值模型呢蛮强大,但是,其也不曾针对Value提供某种数据模型。通常来说,Value的型可以由用负责解析及存取。这种特别不便利,于是应运而生了BigTable类型的数据库,这个数据模型其实就是是map里有map,map里再套map,一叠一叠套下去,也不怕是稀缺嵌套的key- value(value里又是一个key-value),这种数据库的Value主要通过“列族”(column families),列,和时间截来控制版本。(陈皓注:关于时间截来对数码的版本控制主要是釜底抽薪数据存储并发问题,也尽管是所谓的乐观主义锁,详见《大多版本NoSQL出现控制(MVCC)在分布式系统中之行使》)

· Document databases 文档数据库 改进了BigTable模型,并提供了零星个有义的改进。第一单凡是同意Value中出主观的模式(scheme),而不是map套map。第二个是索引。Full Text Search Engines全文检索引擎可以让作为是文档数据库的一个变种,他们好供灵活的可变的多寡模式(scheme)以及自动索引。他们之间的不同点主要是,文档数据库用配段名做索引,而全文检索引擎用配段值做索引。

· Graph data models图式数据库 可以吃当是者进化历程遭到从Ordered Key-Value数据库发展过来的一个旁。图式数据库允许构建议图结构的数据模型。它和文档数据库有提到的因是,它的居多兑现允许value可以是一个map或是一个document。

4.0.0.1. NoSQL数据模型摘要

正文剩下的章用为而介绍数据建模的技术实现和有关模式。但是,在介绍这些技能之前,先来同样段序言:

· NoSQL数据模型设计一般由事情应用之切切实实数量查询入手,而非是数码里面的涉:

· 关系型的数据模型基本上是分析数据之中的布局以及关联。其计划意见是: “What answers do I have?”

· NoSQL数据模型基本上是起运对数据的存取方式着手,如:我得支持某种数据查询。其设计理念是 ”What questions do I have?”

· NoSQL数据模型设计比较关系项目数据库需要对数据结构和算法的再次要命的问询。在就首稿子中我会跟豪门说那些明显的数据结构,这些数据结构并无只有是受NoSQL使用,但是对NoSQL的数据模型却坏有帮助。

· 数据冗余和倒规格化是一样对等人民。

· 关系项目数据库对于拍卖层级数据和图式数据异常的非便宜。NoSQL用来解决图式数据明白是一个好好的缓解方案,几乎所有的NoSQL数据库可非常强地解决此类题材。这就是是胡这篇文章特别拿出一致章来说明层级数据模型。

 

4.1. 底是NoSQL的分类表,也是自我为此来描写就首文章时举行执行的出品:

· Key-Value 存储: Oracle Coherence, Redis, Kyoto Cabinet

· 类BigTable存储: Apache HBase, Apache Cassandra

· 文档数据库: MongoDB, CouchDB

· 全文索引: Apache Lucene, Apache Solr

· 图数据库: neo4j, FlockDB

 

 

 

5. 参考

 

行前十的SQL和NoSQL数据库-CSDN.NET.htm

8天学通MongoDB——第一天 基础入门 – 一线码农 – 博客园.htm

 

MongoDB 查询文档   菜鸟教程.htm

分布式 Key-Value 存储系统:Cassandra 入门.htm

Cassandra 2.x中文课(2):执行简单的CQL操作   屁民部落.htm

NoSQL数据建模技术-CSDN.NET.htm

HBase使用教程 – 推酷.htm

 

网站地图xml地图