标签: mongomapper

MongoMapper(或任何其他Mongodb适配器)是否有类似"accepts_nested_attributes_for"的方法?

我正在考虑在一个新项目上使用mongodb,但在钻研之前,我想知道它是否支持一些关键功能.我知道您不需要迁移,并且您可以添加嵌入对象,但是所有这些意味着它的行为就像'accepts_nested_attributes_for'方法总是在那里一样?

您是否知道我应该注意的任何其他杀手功能会影响我或者反对MongoDB?

这是我最近发现的一篇文章,其他人也可能对以下内容感兴趣:

http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/

ruby ruby-on-rails mongodb mongomapper

5
推荐指数
1
解决办法
1304
查看次数

在Rails中组合MongoDB和Postgresql?

是否可以将AR与MongoMapper/MongoID结合起来?

如果是这样,是否有教程/文件?

postgresql ruby-on-rails mongodb mongomapper mongoid

5
推荐指数
1
解决办法
4301
查看次数

Ruby Sinatra - 在mongoHQ上连接到mongoDB失败了

这只是我周末的项目/研究,我是Sinatra和MongoDB的新手.

我已经为mongoDB安装了宝石,例如:mongo,mongo_mapper和mongoid.

当我尝试从localhost连接到MongoHQ上的数据库时,遇到了这样的错误:

Mongo::ConnectionFailure at /
failed to connect to any given host:port

    * file: connection.rb
    * location: connect
    * line: 489
Run Code Online (Sandbox Code Playgroud)

在SO上找到了类似的帖子,但坦率地说,我不太明白答案......

这是我的代码片段:

require 'rubygems'
require 'sinatra'
require 'mongo'
require 'mongo_mapper'

get '/' do
  MongoMapper.connection = Mongo::Connection.new('flame.mongohq.com', 27044)
  MongoMapper.database = 'notes'
  MongoMapper.database.authenticate('foo', 'bar')
  erb :list
end
Run Code Online (Sandbox Code Playgroud)

我从这里拿了上面的代码,但似乎没有用......

哪部分错了?还有另一种方法吗?最后,这个测试Web应用程序将部署到heroku上,所以我希望该解决方案可以同时使用localhost和我的heroku服务器.

更新:

I just created a minimal code snippet to test the mongodb connection:
require 'rubygems'
require 'mongo'

db = Mongo::Connection.new("flame.mongohq.com", 27044).db("notes")
Run Code Online (Sandbox Code Playgroud)

但是在超时后仍然出现错误:

$ ruby mongodbtest.rb …
Run Code Online (Sandbox Code Playgroud)

ruby heroku sinatra mongodb mongomapper

5
推荐指数
1
解决办法
3370
查看次数

Doctrine ODM和无架构设计

继续我关于EAV的问题,我正在考虑使用MongoDB来存储产品属性.

我将使用MongoDB(或其他文档数据库)存储此应用程序的目录部分 - 类别,产品及其所有相关信息.

我的问题是,当使用ODM时,每个实体都有一个模式,它基本上忽略了使用NoSQL数据库的无模式优势,不是吗?

如果这是正确的,为什么有人会使用ODM?

编辑:我发现了一个相关的问题,我可以使用哈希实现产品属性功能吗?

mongodb nosql mongomapper doctrine-orm doctrine-odm

5
推荐指数
1
解决办法
2531
查看次数

将Yaml用于MongoMapper配置

我有我的Yaml配置文件,mongo.yml:

development:
  adapter: mongodb
  database: fhsclock_development
  host: localhost
  port: nil

test:
  adapter: mongodb
  database: fhsclock_test
  host: localhost
  port: nil

production:
  adapter: mongodb
  database: fhsclock
  hosts:
  - - localhost
    - nil
  - - staff.mongohq.com
    - 10015
Run Code Online (Sandbox Code Playgroud)

如何使用此文件进行MongoMapper的配置和连接?

yaml mongomapper

5
推荐指数
1
解决办法
2847
查看次数

对于MongoMapper模型,取消设置操作失败,无法从模型中删除/删除键

我们使用的是mongodb 2.0.0,mongo gem 1.4.1,mongo_mapper 0.9.2,rails 3.0.6.

我们喜欢MongoMapper,但我们需要帮助解决一个令人讨厌的问题:我们从一些测试中得到了一个密钥,但调用obj.unset却无法做任何事情.

具体来说,我们试图删除一个"id"键(不是"_id"),因为它导致MM将obj.id视为与我们不想要的obj._id不同.

清理完数据库之后,我们从一个不执行任何操作的控制器运行这些命令:(我们也尝试从rails控制台运行相同的代码,但它也失败了.)

logger.info "#{Game.keys.keys.inspect}"
Game.unset({}, :id)
logger.info "#{Game.keys.keys.inspect}"
Game.unset(:id)
logger.info "#{Game.keys.keys.inspect}"
Run Code Online (Sandbox Code Playgroud)

输出:

["jackpot", "players", "created_at", "puzzles", "ended_at", "player_index", "updated_at", "log", "_id", "id", "join_code", "puzzle_index"]
["jackpot", "players", "created_at", "puzzles", "ended_at", "player_index", "updated_at", "log", "_id", "id", "join_code", "puzzle_index"]
["jackpot", "players", "created_at", "puzzles", "ended_at", "player_index", "updated_at", "log", "_id", "id", "join_code", "puzzle_index"]
Run Code Online (Sandbox Code Playgroud)

我们的游戏模型中定义的当前键:

  key :players, Array, :default => []
  key :player_index, Integer, :default => 0
  key :puzzles, Array, :default => []
  key :puzzle_index, Integer, :default => 0 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongodb mongomapper ruby-on-rails-3

5
推荐指数
1
解决办法
461
查看次数

MongoMapper:查找在指定日期创建的所有文档

我需要编写一个查询,查找在指定日期创建的所有文档.

我们假设日期是今天.

我试过这个:

Document.all(:created_at => Date.parse(Time.now.strftime('%Y/%m/%d')))
Run Code Online (Sandbox Code Playgroud)

但我得到了:

无法将类Date的对象序列化为BSON.

谢谢你的帮助.

更新 此链接说明了如何使用MongoMapper进行日期范围查询.

Document.count( :created_at => { '$gt' => 2.days.ago.midnight, '$lt' => 1.day.ago.midnight } )
Run Code Online (Sandbox Code Playgroud)

ruby mongodb mongomapper

5
推荐指数
1
解决办法
2385
查看次数

为什么collections.find({})对250个对象占用超过9秒(MongoMapper)

我正在运行以下查询,返回结果平均需要9秒.它上面没有过滤器,所以我不确定索引是否会有所帮助.为什么这么慢?那里只有250个对象,只有4个字段(全部是文本).

Country.collection.find({},:fields => ['country_name', 'country_code']).to_json

"cursor":"BasicCursor",
"nscanned":247,
"nscannedObjects":247,
"n":247,
"millis":0,
"nYields":0,
"nChunkSkips":0,
"isMultiKey":false,
"indexOnly":false,
"indexBounds":{},
"allPlans":[{"cursor":"BasicCursor","indexBounds":{}}]
Run Code Online (Sandbox Code Playgroud)

机器上的cpu,内存和磁盘甚至都没有注意到查询运行.任何帮助,将不胜感激.

ruby mongodb mongomapper ruby-on-rails-3

5
推荐指数
1
解决办法
143
查看次数

为已存储数据的模型重新加载轮胎/弹性搜索映射

我正在使用Tire和elasticsearch在MongoMapper模型上提供搜索功能,这是Rails应用程序的一部分.我只是偶然发现了一个问题,当我重新部署到使用以下配置的环境(在config/environments/env_name.rb中)时,此模型的映射没有更新:

config.cache_classes = true
Run Code Online (Sandbox Code Playgroud)

单独重新加载类似乎没有解决问题(也许可以理解,新的映射可能与我猜的现有数据不兼容?).相反,我必须做以下事情:

MyModel.index.delete
<restart the app or reload the class>
MyModel.index.import MyModel.all
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有更好的方法a).确保我的模型代码中定义的最新映射在每次部署后由elasticsearch使用,但b).避免用完整的数据集重新填充索引?

我们通常使用Chef进行部署,因此我可以自动完成我成功使用的三个步骤而不会有太多麻烦.但我是弹性研究的新手,所以我认为我很可能会误用两者或者让事情变得不必要.

ruby-on-rails mongomapper chef-infra elasticsearch tire

5
推荐指数
1
解决办法
1604
查看次数

如何在mongodb中返回弹出的元素

我想从数组中弹出一项,并获取该元素。

在mongodb中有可能吗?

我没有找到这样的信息

http://docs.mongodb.org/manual/reference/operator/pop/

mongodb mongomapper

5
推荐指数
1
解决办法
1084
查看次数