Tag: mongomapper

使用mongomapper在Array字段中查找包含元素的文档?

我是mongodb / mongomapper的新手,无法找到答案。 我有一个带有以下字段的mongomapper类 key :author_id, Integer key :partecipant_ids, Array 假设我有一个具有以下属性的“记录”: { :author_id => 10, :partecipant_ids => [10,15,201] } 我想要检索涉及id为15的partecipant的所有对象。 我没有在文档中找到任何提及。 奇怪的是,以前我在做这个查询 MessageThread.where :partecipant_ids => [15] 哪个工作,但在(或许)gem/ mongodb版本的一些变化后它停止工作。 不幸的是,我不知道我之前使用过哪个版本的mongodb和mongomapper。

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

我正在考虑在一个新项目上使用mongodb,但在钻研之前,我想知道它是否支持一些关键function。 我知道您不需要迁移,并且您可以添加嵌入对象,但是所有这些意味着它的行为就像’accepts_nested_attributes_for’方法总是在那里一样? 您是否知道我应该注意的任何其他杀手function会影响我或者反对MongoDB? 这是我最近发现的一篇文章,其他人也可能对以下内容感兴趣: http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/

从mongoDB中删除文档

这可能是一个非常愚蠢的问题,但我是MongoDB的新手,所以请耐心等待。 我创建了一个独立的ruby类: require ‘rubygems’ require ‘mongo’ require ‘bson’ require ‘mongo_mapper’ MongoMapper.database = “testing” class Twit include MongoMapper::Document key :id, Integer, :unique => true key :screen_name, String, :unique => true … 然后我用irb执行以下操作 >> twit = Twit.all.first => # >> twit.destroy => true >> Twit.all => [#] 那么如何销毁MongoDB中的文档呢? 我究竟做错了什么?

Mongomapper与Array有很多问题

我想列出用户表单中用户任务列表的所有任务名称 但是,当我使用下面的代码时,我收到以下消息: undefined method `task_id’ for … 这是我的课程: class User include MongoMapper::Document key :name, String key :tasklist, Array # I need this to hold ObjIds many :tasks, :in => :tasklist, :class_name => ‘Task’ def add(taskid) a = self.new a.task_id << taskid a.save end class Task include MongoMapper::Document key :name, String many :users end

mongodb和mongomapper

我有一个rails应用程序,目前使用activerecord存储和查询产品。 每个产品都有一个类别和子类别,每个子类别由我可以在应用程序中创建的多个字段定义。 从此,当用户想要输入特定产品时,他们将与相关的表单字段一起呈现。 这已经变得非常复杂,自从听说过mongodb和mongomapper之后,我想或者希望我从一开始就使用mongomapper创建它! 问题是我想知道在mongodb中建模这个应用程序的最佳方法??? 我正在考虑使用具有公共字段的procuct模型,然后让类别模型inheritance自具有不同字段的产品模型。 这听起来不错吗? 问题也在于我希望用户能够在应用程序内创建自己的类别和字段。 我怎么能这样做,例如当用户创建具有速度和门数等字段的汽车类别时。然后我需要能够使用这些字段创建表格以供将来的汽车输入。 任何人可以帮助我的想法,指针或例子都会很棒。 非常感谢rick

mongomapper协会跳过重复

我有一个带有ObjectId数组的Document: Class Task key :user_id, Array many :userlist, class_name: ‘User’, :in => :user_id 在该Array中,我存储了不同的user_id值,有时会重复。 我可以看到重复的user_id使用: @task.user_id.each do |z| puts z end 但是当我使用以下方法获取和关联数据时: @task.userlist.each do |z| puts z.name end 我没有得到重复项:(,只有唯一的ID才能获得关联。为什么?

使用MongoDb升级多个记录

我试图让MongoDB使用以下查询来追加多个记录,最终使用MongoMapper和Mongo ruby​​驱动程序。 db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true) 如果存在所有记录,则此方法可以正常工作,但不会为不存在的记录创建新记录。 以下命令具有shell所需的效果,但从ruby驱动程序可能并不理想。 [1,2].forEach(function(id) {db.foo.update({event_id: id}, {$inc: {visit:1}}, true, true) }); 我可以循环遍历我想要在ruby中插入的每个id,但这样就需要为每个项目访问数据库。 有没有办法从ruby驱动程序中只有一次数据库中的多个项目? 这里的最佳做法是什么? 使用mongomapper和ruby驱动程序,有没有办法在一个批处理中发送多个更新,生成如下所示的内容? db.foo.update({event_id: 1}, {$inc: {visit:1}}, true); db.foo.update({event_id: 2}, {$inc: {visit:1}}, true); 样本数据: 如果存在两条记录,则命令后的所需数据。 { “_id” : ObjectId(“4d6babbac0d8bb8238d02099”), “event_id” : 1, “visit” : 11 } { “_id” : ObjectId(“4d6baf56c0d8bb8238d0209a”), “event_id” : 2, “visit” […]

如何在同一个Ruby Rails项目中配置MongoMapper和ActiveRecord

我有一个现有的生产Ruby / Rails应用程序,我希望随着时间的推移迁移到MongoDB,因为它不是一次只能重写它的选项。 我希望能够在我找到它们时弃用我的旧课程。 我计划使用MongoMapper。 我找不到任何人解释如何设置数据库配置文件以允许连接到一个应用程序中的两个数据存储的示例。 FWIW,我正在使用Rails 3.我很感激帮助。