`

使用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 on rails对mongodb的操作

    ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作

    Ruby and MongoDB Web Development

    Ruby对MongoDB数据库的操作指南,用于Web开发,前端开发有用

    MongoDB权威指南(中文版)高清

    15111.2.4 评论树 15211.2.5 投票 15311.3 自定义提交表单:Ruby 15411.3.1 安装Ruby驱动 15411.3.2 使用Ruby驱动 15511.3.3 自定义表单提交 15511.3.4 Ruby的对象映射和在Rails中使用MongoDB 15711.4...

    mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi

    MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。 你可以通过本地或者网络创建数据...

    MongoDB in action

    本书共分三部分,首先介绍mongodb 的历史、特性和使用场景,然后细致阐述mongodb api,专注于应用程序开发渐近式描述电子商务应用的模式与操作,并最后从dba 的角度考量性能和运维。另外,书中还介绍了面向文档...

    电子书:MongoDB权威指南(中文版)

    82.4 启动MongoDB 92.5 MongoDB Shell 102.5.1 运行shell 102.5.2 MongoDB 客户端 112.5.3 shell 中的基本操作 112.5.4 使用shell 的窍门 132.6 数据类型 152.6.1 基本数据类型 152.6.2 数字 172....

    mongo-ruby-driver:MongoDB的Ruby驱动程序

    MongoDB Ruby驱动程序 官方支持的用于Ruby驱动程序。 Ruby驱动程序支持Ruby 2.3-2.7和JRuby 9.2。 文献资料 高级文档和用法示例位于。 最新版本的API文档可在找到。 要为master分支构建API文档,请在本地检出存储...

    NoSQL云数据库mongoDB的C#示例(vs2005)

    本例是本人参考网上资料自行编写的,希望对感兴趣的朋友有所帮助(里面有mongodb的启动说明与shell命令操作说明)! MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可护展的高性能数据...

    MongoDB权威指南 中文版第一版

    执行基本的写入操作,构建各种复杂的查询,任何条件下都能查出数据。使用索引、聚合工具,以及其他高级查询技巧。了解监控、安全和认证、备份和修复等内容。建立主从集群和自动故障恢复复制。利用分片水平扩展...

    boot2docker-mongodb:在 OS X 上使用 docker 启动 MongoDB 分片集群的 Bash 脚本(通过 boot2docker)

    boot2docker-mongodb 在 OS X 上使用启动 MongoDB 分片集群的 Bash 脚本(通过 )。 它使用 IP 地址进行容器通信。 灵感来自 Alex Komyagin 的 docker 。 使用官方。 当前设置: 2个副本集(3个数据注释) 3个配置...

    crunch:一个异步的、固执己见的 MongoDB 驱动程序

    紧缩Crunch 是一个替代的 MongoDB 驱动程序,强调高并发、原子更新操作和文档完整性。 它使用 EventMachine 进行非阻塞写入和读取,并具有同步回退功能,以便与非事件应用程序轻松集成。 它的 API 比官方 MongoDB ...

    使用node+vue+mongodb重构旅游网站rebuild-my-travel-website.zip

    前端技术: ... CSS :用于设计网页外观和样式的样式表语言。 JavaScript:用于在网页上实现交互性和动态效果的脚本语言。...Ruby on Rails:一个基于Ruby编程语言的Web应用框架,提供了高效的开发工具。

    mosql:MongoDB→PostgreSQL流复制

    我们喜欢它为我们提供的灵活性,因为它随着我们的成长和学习而改变数据模式,我们也喜欢它的操作属性。 我们喜欢复制品。 我们喜欢不需要生成和解析字符串,跟踪占位符参数或任何废话的统一查询语言。 关键是,...

    fluent-plugin-mongo-slow-query:流畅的mongoDB插件慢查询

    找出MongoDB的慢速操作并分析查询原型将很有帮助。 用法与in_tail几乎相同。 安装 $ fluent-gem install fluent-plugin-mongo-slow-query 配置 type mongo_slow_query path /path/to/mongodb/logfile 描述 主机...

    java面向对象笔试题-ddd_sample_app_ruby:DDD示例应用程序的惯用Ruby端口

    使用最新想法更新示例应用程序 支持讨论实施实践 与 Ruby 社区进行对话并了解 DDD 显示设计和实现权衡 向 DDD(通常是 Java 和 .NET)社区教授更多关于 Ruby 的知识 用于受控实验的实验室鼠标 学习 Ruby 作为一种...

    一个c+ruby支持分布式部署开源的网络游戏库fsnet.zip

    这个C#实现的小游戏是一个简单的猜数字游戏,让玩家...Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    nosql 入门教程

    5.3.1 使用MongoDB、HBase和Redis更新及修改数据 98 5.3.2 有限原子性和事务完整性 99 5.4 小结 100 第6章 查询NoSQL存储 101 6.1 SQL与MongoDB查询功能的相似点 101 6.1.1 加载MovieLens数据 103 6.1.2 ...

    vagrant-mongodb

    流浪者-mongodb 该项目的目标是简化用于测试和开发的 MongoDB 实例的创建。 它目前依赖于 [Amazon EC2] ( ),但由于它基于支持各种后端的 ... 它默认执行以下操作: 从 Amazon 发布的标准 AMI 启动一个新的m1.medi

    后端开发技术要点&详细案例*注意事项

    了解常见的关系型数据库(如MySQL、PostgreSQL、SQLite)和非关系型数据库(如MongoDB、Redis)的基本原理和使用方法。学习使用ORM(对象关系映射)工具简化数据库操作。 4. 学习API设计 学习如何

    geonames_local:地名数据->本地MongoDB

    在本地下载和存储Geonames.org数据(MongoDB,Mongoid)。 使您的服务器上的每一个Geoname API操作成为可能。 没有命中限制,请尽快。 下载所有国家/地区数据 将ZIP合并到城市中,因此您需要戴口罩 使用地理名称ID...

Global site tag (gtag.js) - Google Analytics