我已经看到NoSQL在SO上弹出了很多,我对为什么你会使用它(从这里,维基百科等)有了深刻的理解。这可能是由于缺乏对具体内容的具体和统一定义(更多的是范式而非具体实现),但我正在努力探讨如何设计一个可以使用它的系统或如何我会在我的系统中实现它。我真的陷入了一种关系数据库思维模式,从表和连接的角度思考问题......
无论如何,是否有人知道将使用它的系统的速成课程/教程(基于NoSQL的系统的“hello world”)或者采用现有“Hello World”应用程序的教程基于SQL并将其转换为NoSQL(不一定是代码,但只是一个高级解释)。
答案 0 :(得分:53)
最基本的形式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)
}
}
}
这就是它真正存在的......它在服务器端变得更加复杂,因为服务器必须处理崩溃和同一对象的多个修订,但这只是一个例子。
答案 1 :(得分:46)
Here is a decent slide show介绍MongoDB。我认为一些重大差异是大多数系统都依赖于Active Record或类似的数据库抽象。
此外,我发现了一个很棒的free orlys book on Couch DB here,非常棒。
答案 2 :(得分:3)
答案 3 :(得分:2)
mongoDB网站以在线mongoDB shell模拟的形式提供了一个很棒的10步教程。它需要10分钟才能完成,这是开始使用noSQL的绝佳方式!
http://www.mongodb.org/(点击“试一试”)
答案 4 :(得分:1)
y_serial被编写为单个Python模块,其内容类似于工作教程,包含许多提示和参考:http://yserial.sourceforge.net/
这是以如何以“NoSQL”(不仅是SQL)方式持久保存任意Python对象(例如字典数据结构)的角度。
答案 5 :(得分:1)
Infoq上有一个Graph Databases, NOSQL and Neo4j
答案 6 :(得分:1)
如果你喜欢Neo4j,请看这个很酷的presentation
答案 7 :(得分:1)
答案 8 :(得分:0)
以下是我的NoSQL资源:
nosql的初学者教程:http://www.tutorialindustry.com/nosql-tutorial-for-beginners
MongoDB的:http://www.tutorialindustry.com/mongodb-tutorial-for-beginners
for CouchDB:http://www.tutorialindustry.com/couchdb-tutorial-for-beginners
for Redis:http://www.tutorialindustry.com/redis-tutorial-for-beginners