NoSql速成课程/教程

我已经看到了NoSQL在弹出的相当一部分,我对你为什么会使用它有很好的理解(从这里,维基百科等)。 这可能是由于它缺少具体和统一的定义(更多的是一个范例而不是具体的实现),但是我正在努力围绕我如何设计一个可以使用它的系统或如何我会在我的系统中实现它。 我真的被困在一个关系数据库的思维方式中,用表和连接的方式来思考......

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


这是一个体面的幻灯片介绍MongoDB。 我认为一些重大的差异是大多数系统依赖于Active Record或类似的数据库抽象。

我还在这里找到了一本关于Couch DB的精彩免费orlys书,这非常棒。


在最基本的形式上,NoSQL实际上不过是使用某种键/值对配对系统来存储对象的一种方式。 我已经假设你一直都在使用这个。 例如。 在JavaScript中,您可以创建一个名为foo的对象,然后执行foo['myobj'] = myobj; 将东西存储在对象中。

所有的NoSQL服务器真正做的是给你一种添加/删除/查询海量数组的方法,并且仍然允许持久性和容错性。 您可以在大约100行代码中在内存服务器中创建NoSQL。

所以让我们这样做......在CouchDB中,您使用map / reduce ...所以让我们创建一个map函数,它与一些SQL代码相同:

SELECT * FROM users WHERE age > 10

在CouchDB中,您为服务器提供了一个JavaScript函数,可以针对数据库中的每个项目运行...

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

这就是它的全部......它在服务器端从那里变得更加复杂,因为服务器必须处理崩溃和同一对象的多个修订版,但这仅仅是一个例子。


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

链接地址: http://www.djcxy.com/p/66401.html

上一篇: NoSql Crash Course/Tutorial

下一篇: Access all workspaces for a job with concurrent builds