【问题标题】:NoSql Crash Course/Tutorial [closed]NoSql 速成课程/教程 [关闭]
【发布时间】:2011-01-20 15:41:10
【问题描述】:

我已经看到 NoSQL 在 SO 上出现了相当多的情况,并且我对您会使用它的为什么有深刻的理解(来自这里、维基百科等)。这可能是由于缺乏对它的具体和统一的定义(更多的是一种范式而不是具体的实现),但我正在努力思考我将如何设计一个使用它的系统或如何我会在我的系统中实现它。我真的陷入了关系数据库的思维模式,从表和连接的角度来思考事情......

无论如何,有没有人知道系统上的速成课程/教程会使用它(对于基于 NoSQL 的系统来说是一种“hello world”)或使用现有“Hello World”应用程序的教程基于SQL并将其转换为NoSQL(不一定是代码,只是高级解释)。

【问题讨论】:

  • 我真的很喜欢这个video。是 10Gen 的网络研讨会。它解释了如何使用 MongoDB 发布基本内容和添加社交互动(标签、cmets、数据聚合)。

标签: nosql


【解决方案1】:

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)
       }
    }
}

这就是它的全部内容......它在服务器端变得更加复杂,因为服务器必须处理崩溃以及同一对象的多个修订,但这只是一个示例。

【讨论】:

  • 您的示例在大型数据库中似乎效率低下。服务器可以对文档类型进行索引,或者对它使用的键和键上的索引是否聪明?类似的键可以是 user1、user2 等。
【解决方案2】:

【讨论】:

  • 那个网站没了,全是 404...
  • 是的,这都是 404。
【解决方案3】:

观看来自 DNR TV 的 this 视频,亲身体验一下 MongoDB。第一次介绍可能会很好。

【讨论】:

    【解决方案4】:

    mongoDB 网站以在线 mongoDB shell 模拟的形式提供了一个很棒的 10 步教程。完成需要 10 分钟,是开始使用 noSQL 的绝佳方式!

    http://www.mongodb.org/(点击“试用”)

    【讨论】:

    【解决方案5】:

    【讨论】:

      【解决方案6】:

      如果你喜欢 Neo4j,请看这个很酷的 presentation

      【讨论】:

        【解决方案7】:

        【讨论】:

          【解决方案8】:

          y_serial 是作为一个单独的 Python 模块编写的,读起来就像一个工作教程,并包含许多提示和参考:http://yserial.sourceforge.net/

          这考虑了如何以“NoSQL”(不仅仅是 SQL)方式持久化任意 Python 对象(例如字典数据结构)。

          【讨论】:

            【解决方案9】:

            Here is a decent slide show 介绍 MongoDB。我认为最大的区别在于大多数系统都依赖于 Active Record 或一些类似的数据库抽象。

            我还发现了一个很棒的free orlys book on Couch DB here,非常棒。

            【讨论】:

              猜你喜欢
              • 2010-09-08
              • 1970-01-01
              • 2011-09-08
              • 2023-03-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-03-05
              • 2012-04-24
              相关资源
              最近更新 更多