新建项目

rails new mongoid_app --skip-active-record --skip-test-unit --skip-bundle
create
create README.rdoc
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/assets/javascripts/application.js
create app/assets/stylesheets/application.css
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/assets/images/.keep
create app/mailers/.keep
create app/models/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/filter_parameter_logging.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/secret_token.rb
create config/initializers/session_store.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/.html
create public/.html
create public/.html
create public/favicon.ico
create public/robots.txt
create tmp/cache
create tmp/cache/assets
create vendor/assets/javascripts
create vendor/assets/javascripts/.keep
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep

修改Gemfile

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.2'
gem 'bson_ext'
gem 'mongo'
gem 'mongoid', github: 'mongoid/mongoid' # Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
gem 'sdoc', require: false
end

运行bundle install

bundle install
Updating git://github.com/mongoid/mongoid.git
Fetching gem metadata from https://rubygems.org/...........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.1.)
Using i18n (0.6.)
Using minitest (4.7.)
Using multi_json (1.8.)
Using atomic (1.1.)
Using thread_safe (0.1.)
Using tzinfo (0.3.)
Using activesupport (4.0.)
Using builder (3.1.)
Using erubis (2.7.)
Using rack (1.5.)
Using rack-test (0.6.)
Using actionpack (4.0.)
Using mime-types (1.25.)
Using polyglot (0.3.)
Using treetop (1.4.)
Using mail (2.5.)
Using actionmailer (4.0.)
Using activemodel (4.0.)
Using activerecord-deprecated_finders (1.0.)
Using arel (4.0.)
Using activerecord (4.0.)
Using bson (2.0.)
Using bson_ext (1.5.)
Using bundler (1.5.)
Using coffee-script-source (1.6.)
Using execjs (2.0.)
Using coffee-script (2.2.)
Using thor (0.18.)
Using railties (4.0.)
Using coffee-rails (4.0.)
Using connection_pool (1.2.)
Using hike (1.2.)
Using jbuilder (1.5.)
Using jquery-rails (3.0.)
Using json (1.8.)
Using mongo (1.3.)
Using optionable (0.2.)
Using moped (2.0..beta4)
Using origin (2.0.)
Using mongoid (4.0..alpha1) from git://github.com/mongoid/mongoid.git (at master)
Using tilt (1.4.)
Using sprockets (2.10.)
Using sprockets-rails (2.0.)
Using rails (4.0.)
Using rdoc (3.12.)
Using sass (3.2.)
Using sass-rails (4.0.)
Using sdoc (0.3.)
Using turbolinks (2.1.)
Using uglifier (2.4.)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

生成mongoid数据库配置文件

rails generate mongoid:config
create config/mongoid.yml

在这里不对mongoid.yml进行任何更改(假设已安装MongoDB并以默认设置启动),顺便贴一下生成的mongoid.yml 的文件内容

 development:
# Configure available database sessions. (required)
sessions:
# Defines the default session. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: mongoid_app_development
# Provides the hosts the default session can connect to. Must be an array
# of host:port pairs. (required)
hosts:
- localhost:
options:
# Change the default write concern. (default = { w: })
# write:
# w: # Change the default consistency model to primary, secondary.
# 'secondary' will send reads to secondaries, 'primary' sends everything
# to master. (default: primary)
# read: secondary_preferred # How many times Moped should attempt to retry an operation after
# failure. (default: )
# max_retries: # The time in seconds that Moped should wait before retrying an
# operation on failure. (default: )
# retry_interval:
# Configure Mongoid specific options. (optional)
options:
# Enable the identity map, needed for eager loading. (default: false)
# identity_map_enabled: false # Includes the root model name in json serialization. (default: false)
# include_root_in_json: false # Include the _type field in serializaion. (default: false)
# include_type_for_serialization: false # Preload all models in development, needed when models use
# inheritance. (default: false)
# preload_models: false # Protect id and type from mass assignment. (default: true)
# protect_sensitive_fields: true # Raise an error when performing a #find and the document is not found.
# (default: true)
# raise_not_found_error: true # Raise an error when defining a scope with the same name as an
# existing method. (default: false)
# scope_overwrite_exception: false # Use Active Support's time zone in conversions. (default: true)
# use_activesupport_time_zone: true # Ensure all times are UTC in the app side. (default: false)
# use_utc: false
test:
sessions:
default:
database: mongoid_app_test
hosts:
- localhost:
options:
read: primary
# In the test environment we lower the retries and retry interval to
# low amounts for fast failures.
max_retries:
retry_interval:

使用scaffold脚手架生成测试程序

rails generate scaffold User name:string email:string
invoke mongoid
create app/models/user.rb
invoke resource_route
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke helper
create app/helpers/users_helper.rb
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/users.js.coffee
invoke scss
create app/assets/stylesheets/users.css.scss
invoke scss
create app/assets/stylesheets/scaffolds.css.scss

顺便也贴一下生成的model文件 user.rb

 class User
include Mongoid::Document
field :name, type: String
field :email, type: String
end
运行测试服务器
rails server
=> Booting WEBrick
=> Rails 4.0. application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[-- ::] INFO WEBrick 1.3.
[-- ::] INFO ruby 2.0. (--) [x86_64-linux]
[-- ::] INFO WEBrick::HTTPServer#start: pid= port=

访问地址http://localhost:3000/users 并添加一条数据

运行mongo查看数据是否添加成功

mongo
MongoDB shell version: 2.4.
connecting to: test
> show dbs
mongoid_app_development .203125GB
test (empty)
> use mongoid_app_development
switched to db mongoid_app_development
> show collections
system.indexes
users
> db.users.find()
{ "_id" : ObjectId("52c1330a75627524e2000000"), "name" : "grj", "email" : "grj@example.com" }
> exit
bye

下载: mongoid_app.rar

rails 4.0.2 + mongoid 对mongodb进行增删改查的更多相关文章

  1. Java连接MongoDB进行增删改查

    1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...

  2. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  3. Scala对MongoDB的增删改查操作

    =========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...

  4. C# 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  5. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  6. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  7. 2,MongoDB之增删改查及pymongo的使用

    本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...

  8. MongoDB的增删改查 转

    MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...

  9. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

随机推荐

  1. CSS之box-sizing的用处简介

    前几天才发现有 box-sizing 这么个样式属性.研究了一番感觉非常有意思, 通过指定容器的盒子模型类型,达到不同的展示效果 比如:当一个容器宽度定义为 width:100%;  之后.假设再添加 ...

  2. boost::signals::signal的使用方法

    吃力的讲完boost::signals的ppt.然后接着就是做练习题. 通过讲ppt,发现有一句话说的真好:你自己知道是一回事.你能给别人讲明确又是另外一回事.真的有些东西你自己理解,可是用语言去非常 ...

  3. 悟道—位IT高管20年的职场心经(读书笔记五)

    悟道--一位IT高管20年的职场心经 第五章 搞定老板 "老板就是老板" 这一点,你可能会忘了,他一定不会忘: "老板不会总是老板" 这一点,他可能会忘,你最好 ...

  4. python中使用traceback来追踪异常

    test1.py中,当分母为0的时候,调用系统退出 #!/usr/bin/python import sys def division(a=1, b=1): if b==0: print 'b eq ...

  5. s3c2440的A/D转换应用

    10 地点 CMOS ADC(模/数字转换器)是 8 通道模拟输入型设备回收.该模拟输入信号转换 10 位二进制数字编码,A/D变化.也被称为模数转换.该模拟信号被转换成美元 算机可以处理的数字信号. ...

  6. C++ 版本的split_string

    vector<string> split_string(const string &in, char del, bool skip_empty) { vector<strin ...

  7. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  8. 指定为文件头部Expires要么Cache-Control

    Cache-Control :private,no-cache.must-revalidate,max-age Expires指定页面过期时间 response.setContentType(&quo ...

  9. Spark里边:Worker源代码分析和架构

    首先由Spark图表理解Worker于Spark中的作用和地位: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW56aHNvZnQ=/font/5a6L ...

  10. HDOJ 5188 zhx and contest 贪婪+01背包

    zhx and contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...