MongoMapper到Mongoid:如何在数组内搜索?

时间:2011-12-24 13:10:44

标签: ruby mongodb mongoid mongomapper

“self”在这里代表接触模型。 此查询将查找联系人的所有已完成任务。 Task模型有一个字段/键:assigned_contacts类型为Array。 所以查询是在数组内搜索。

def assigned_tasks_completed
  self.company.tasks.all(:assigned_contacts => self.id.to_s, :completed => true)
end

如何在Mongoid中执行此操作?

另一个问题: Mongoid of @ contact.set(:a - > a,:b - > b,:c - > c)中的等价物是update_attributes!

但Mongoid中还有一个方法集。 set& amp;有什么区别? update_attributes方法!在Mongoid?

1 个答案:

答案 0 :(得分:0)

我认为你的任务是一个单独的文件。因此,您只需将all替换为where即可,

def assigned_tasks_completed
  self.company.tasks.where(:assigned_contacts => self.id.to_s, :completed => true)
end

关于你的另一个问题,

mongoid set& update attributes内部使用mongodb $set。但不同的是mongoid set只接受单个字段更新,update_attributes接受多个。