`

使用ruby操作MongoDB

阅读更多

MongoDB是基于文档、schema-free的、开源的数据库,可以操作JSON格式的数据和CouchDB类似。

http://www.mongodb.org/display/DOCS/Downloads 下载MongoDB

解压 mongodb-linux-i686-1.2.4.tgz

tar xvf mongodb-linux-i686-1.2.4.tgz
mv mongodb-linux-i686-1.2.4 mongodb

 创建一个目录来保存数据

cd mongodb
mkdir -p data/db

 运行mongodb

bin/mongod -dbpath data/db

 打开mongo的shell实验一下:

fuliang@fuliang-laptop ~/mongodb $ bin/mongo
MongoDB shell version: 1.2.4
url: test
connecting to: test
type "help" for help
> use mydb
switched to db mydb
> j = { name: "mongo"}
{ "name" : "mongo" }
> t = { x : 3 }
{ "x" : 3 }
> db.things.save(j);
> db.things.save(t);
> db.things.find();
{ "_id" : ObjectId("4b8e7da14290b1eee23e62f6"), "name" : "mongo" }
{ "_id" : ObjectId("4b8e7da94290b1eee23e62f7"), "x" : 3 }
> exit
bye

 安装ruby gem:

sudo gem install mongo
sudo gem install mongo_ex

 安装mongo_ex可以提高性能。

使用ruby 尝试一下mongodb的一些功能

require 'rubygems'  # not necessary for Ruby 1.9
require 'mongo'

#make a connection
db = Mongo::Connection.new.db("mydb")
#db = Mongo::Connection.new("localhost").db("mydb")
#db = Mongo::Connection.new("localhost", 27017).db("mydb")
#list all database
m = Mongo::Connection.new # (optional host/port args)
m.database_names.each { |name| puts name }
m.database_info.each { |info| puts info.inspect}
#drop database
m.drop_database('things')
#look at collections
db.collection_names.each { |name| puts name }
coll = db.collection("testCollection")
#insert a document
doc = {"name" => "MongoDB", "type" => "database", "count" => 1,
       "info" => {"x" => 203, "y" => '102'}}
coll.insert(doc)
#find the first document
my_doc = coll.find_one()
p my_doc
#insert multiple documents
100.times { |i| coll.insert("i" => i) }
#count documents in a collection
puts coll.count()
#use cursor to get all document
coll.find().each { |row| p row }
#find documents with a query
coll.find("i" => 71).each { |row| p row }
coll.find("i" => {"$gt" => 50}).each { |row| p row }
coll.find("i" => {"$gt" => 20, "$lte" => 30}).each { |row| p row }
#query with regex
coll.find({"name" => /*.ongo.*/})
#create a index
coll.create_index("i")
# explicit "ascending"
coll.create_index([["i", ASCENDING]])

相关资源:
       MongoDB的官方主页: http://www.mongodb.org/display/DOCS/Home
       MongoDB的一个指南: http://www.mongodb.org/display/DOCS/Ruby+Tutorial
       MongoDB的一个幻灯片: http://www.fuchaoqun.com/2010/01/mongodb-in-action/       
       MongoMapper的git官网: . http://github.com/jnunemaker/mongomapper
       MongoMapper的一个例子: http://railstips.org/blog/archives/2009/06/27/mongomapper-the-rad-mongo-wrapper/

 

分享到:
评论

相关推荐

    Ruby and MongoDB Web Development

    5. **Web开发实践**:通过实例项目展示如何使用Ruby和MongoDB构建Web应用,包括用户认证、CRUD操作、数据验证等。 6. **测试与调试**:讲解如何编写测试用例(如使用RSpec),进行代码调试,保证应用的质量。 7. *...

    MongoDB的ruby 教程,太搞了

    - 使用Ruby操作MongoDB数据库的方法,可能涉及阅读和理解MongoDB的源代码。 - 对MongoDB构建原因的思考,以及它在数据库领域中的定位。 由于描述部分缺失,我们无法确切知道本教程的具体内容和结构,但是从标题和...

    ruby on rails对mongodb的操作

    本文将深入探讨如何在Ruby on Rails中集成并操作MongoDB。 首先,我们需要安装必要的库。MongoDB的Ruby驱动程序是`mongo` gem,而`mongoid`或`mongo_mapper`是两个流行的ORM(对象关系映射)工具,它们允许我们用...

    ruby with mongodb

    在Ruby中,开发者通常会使用特定的库来操作MongoDB数据库,例如使用Mongoid这样的ORM(对象关系映射)库,它允许开发者以类似操作Ruby对象的方式来处理MongoDB中的文档,极大地简化了数据库操作的复杂度。...

    mongo-ruby-driverMongoDB的Ruby驱动程序

    MongoDB的Ruby驱动程序,即`mongo-ruby-driver`,是连接和操作MongoDB数据库的一个关键组件,专门针对Ruby编程语言设计。这个驱动程序允许Ruby开发者充分利用MongoDB的强大功能,包括文档型数据存储、分布式数据处理...

    MongoDB and Ruby

    2. **选择ODM(对象文档映射)库**:Ruby社区提供了多种ODM库来帮助开发人员更方便地使用MongoDB,例如MongoMapper、Mongoid等。 3. **建立连接**:使用Ruby驱动程序连接MongoDB数据库。 4. **CRUD操作**:通过Ruby...

    mongo-ruby-driverMongoDB的Ruby驱动程序-源代码

    总的来说,`mongo-ruby-driver`是Ruby开发者连接和操作MongoDB数据库的重要工具。通过阅读和理解其源代码,不仅可以提升对MongoDB工作原理的理解,还可以实现更为灵活和高效的数据库操作。同时,提供的文档资源是...

    Ruby-在RHELUbuntuDebian上从OSrepo安装MongoDB或者从10genrepository

    现在,MongoDB已经安装并运行在你的系统上,你可以开始使用Ruby的Mongo驱动来连接和操作数据库。Ruby社区维护了一个名为`mongo`的gem,用于与MongoDB交互。使用以下命令安装: ```bash gem install mongo ``` 在Ruby...

    MongoDB基本操作指南

    MongoDB 使用类似于JSON的BSON格式存储数据,这使得数据模型更具表现力,同时也简化了数据操作。MongoDB 的核心特性包括其无模式(Schema-free)的设计,允许动态schema,这意味着文档可以拥有不同的结构,极大地...

    mogodb操作mongodb本身

    在MongoDB中,数据库操作是通过命令行工具或者编程语言的驱动程序来完成的。例如,如果你想批量删除集合,MongoDB的Java驱动程序并不直接提供这样的功能,但你可以通过执行JavaScript脚本来实现。在MongoDB shell中...

    mongodb的安装和使用简介

    为了便于管理和使用,还可以将MongoDB作为Windows服务进行安装,这样就可以通过系统服务来控制数据库的启动和停止,大大简化了操作步骤。安装服务时,需要指定日志文件路径、数据文件路径和Windows服务名称,且运行...

    Ruby-MongoModel针对MongoDB的RubyORM框架兼容Rails3

    MongoModel是针对MongoDB数据库的Ruby对象数据映射(ORM)框架,专为简化Ruby开发者与NoSQL数据库MongoDB之间的交互而设计。它提供了一种面向对象的方式来操作数据,类似于传统的关系型数据库中的ActiveRecord。...

    mongodb-docs-2011-01-29_mongodb最新用户手册

    - **PHPLanguageCenter**:PHP 开发者可以学习如何使用官方 PHP 驱动程序进行 MongoDB 操作。 - **RubyLanguageCenter**:Ruby 开发者可以了解如何使用 Ruby 驱动程序与 MongoDB 交互,并获取有关 Rails 集成的...

    mongodb-java基础.pdf

    MongoDB Java 基础知识点 ...本文档提供了 MongoDB 的基础知识点,包括 MongoDB 的特点、文件存储格式、安装和使用、启动参数、停止服务等内容,对于学习 MongoDB 和使用 Java 语言操作 MongoDB非常有帮助。

    MongoDB简介与实践.pdf

    MongoDB使用的是集合(Collection)作为存储数据的容器,每个集合可以包含多个JSON格式的文档(Document)。它支持嵌套文档(Embedded Document)和分片(Shard),使用分片键(ShardKey)来分布数据。 9. MongoDB...

    NoSQL主流数据库-MongoDB.pptx

    * 不支持JOIN操作:MongoDB 不支持JOIN操作,需要使用多个查询来实现JOIN操作。 * 数据一致性问题:MongoDB 的分布式架构可能会导致数据不一致的问题。 MongoDB 是一个功能强大且高性能的 NoSQL数据库,广泛应用于...

    Pro MongoDB Development

    在Ruby部分,开发者可以学习到如何使用Ruby on Rails或不使用Rails框架的情况下集成MongoDB。而在Node.js部分,作者可能介绍了MongoDB的Node.js驱动以及如何构建异步的数据密集型应用。 值得注意的是,《Pro ...

Global site tag (gtag.js) - Google Analytics