2010-02-24 26 views
99

我见过的NoSQL弹出相当多的SO和我有一个坚实的理解,为什么你会使用它(从这里开始,维基百科等)。这可能是由于缺乏具体的,它是(多模式比具体实现)有什么统一的定义,但我挣扎环绕我怎么会去设计,将使用它,或者怎样的系统我的头我会在我的系统中实现它。我真的被困在关系数据库思维的事物表和连接方面...的NoSql速成班/教程

无论如何,任何人都知道系统上的崩溃教程/教程会使用它(类型一个基于NoSQL的系统的“hello world”)或者一个基于SQL并且将其转换为NoSQL(不一定在代码中,但只是一个高级解释)的现有“Hello World”应用程序的教程。

+0

我真的很喜欢这[视频](http://web.archive.org/web/20130106031559/http://www.10gen.com/presentations/webinar-managing-social-content-mongodb)。是10Gen的网络研讨会。它解释了如何使用MongoDB发布基本内容并添加社交交互(标签,注释,数据聚合)。 – Onema

回答

2

看看this来自DNR TV的视频,与MongoDB进行一些交流。第一次介绍可能会很好。

52

在其最基本的形式的NoSQL真的没有比存储使用某种键/值对系统的对象的方式更多。我已经假设你一直都在使用这个。例如。在JavaScript中,您可以创建一个名为foo的对象,然后执行foo['myobj'] = myobj;以在对象中存储东西。

所有的NoSQL服务器确实是给你一个方法来添加/删除/查询大规模阵列和仍然允许持久性和容错能力。您可以在大约100行代码中在内存服务器中创建NoSQL。

因此,让我们做这样...... CouchDB中使用的map/reduce ...所以让我们创建一个映射函数做一样有点SQL代码:

SELECT * FROM users WHERE age > 10 

在CouchDB中你提供服务器与获取对数据库中的每个项目运行JavaScript函数...

function (doc) 
{ 
    if (doc.objType == "users") { 
     if (doc.age > 10) { 
      emit(doc._id, null) 
     } 
    } 
} 

这一切真的是给它.....它获取方式更为复杂的从那里在服务器端,因为服务器必须处理崩溃和同一对象的多个修订版,但这仅仅是一个例子。

+10

你的例子好像在大数据库中效率不高。服务器可以索引文档类型,或者对其使用的密钥和密钥上的索引有所了解?像键可能是user1,user2等 – Jess

1

y_serial被写入作为一个单一的Python模块,其读取像一个工作教程和包括许多提示和出处:​​

这利用如何坚持在任意Python对象(例如,字典数据结构)的立体一个“NoSQL”(不仅是SQL)方式。

2

的MongoDB网站的形式提供了极大的10步教程在线mongoDB shell仿真。需要10分钟才能完成,并且是开始使用noSQL真正好的方法!

http://www.mongodb.org/(点击 “尝试一下”)

+1

只是为了增加这一点,他们有一个SQL到mongo页面,通过代码帮助获取概念 http://docs.mongodb.org/manual/reference/sql-comparison/ –