0
假设以下模型:获取MongoMapper型号的所有按键,包括其关联
class Product
include MongoMapper::Document
key :name, String
key :product_category_id, ObjectId
belongs_to :product_category
end
class ProductCategory
include MongoMapper::Document
key :name, String, :required => true, :unique => true
timestamps!
userstamps!
end
我想要实现一个先进的搜索,将检查我的模型内的所有价值,包括它像所有的关联关系: 我:
- 产品名为“aLaptop”的数据belongs_to:ProductCategory,名为“Notebook”。
- 产品B数据名为“aGreatNotebook”belongs_to:ProductCategory名为“Notebook”。
当我使用名为“Notebook”的关键字进行搜索时,我想将其搜索到Product.name字段及其关联,也就是ProductCategory.name。因此,它将返回这两个项目,因为产品A有ProductCategory.name“笔记本”&产品B有Product.name“aGreatNotebook”和ProductCategory“Notebook”..
我该怎么做?我已经寻找了2天,没有成功到现在为止:(..如果是在MySQL中,我使用的连接表。但怎么样了在MongoMapper ??
请帮助..谢谢..
感谢凯尔银行家..那正是我在想,但怎么样,如果有在产品众多的关联像“品牌”无论是不是“PRODUCT_CATEGORY” ..这意味着我们必须为每个模型查询3次以获得它的_ids? (1.查询ProductCategory._ids,Brand._ids,Product).. –
不是,您可以使用$ in。 ids = ProductCategory.where(:name => {:$ in => [“Notebook”,“Brands”]})。除非我误解你的问题... –
不,我的意思是'品牌'是另一种模式,像'苹果,三星等':) ..而ProductCategoy就像'笔记本,打印机等..'..但他们都与'产品'模型相关联。 我在想的是如何获得产品,产品类别和品牌模型的所有密钥,以便我可以使用只使用单个查询:)搜索.. .. –