我有两个集合:新闻和订阅。每个新闻都有一系列字符串 - “标签”。每个订阅也有这样的“标签”。MongoDB/MongoID多键特殊查询
订阅的新闻项目是订阅所有标签的项目,可能更多。新闻项目的订阅是订阅任何这个项目的标签,但没有更多。
当我希望得到一个订阅的新闻,我的红宝石MongoID做这样的要求:
NewsItem.where(:tags.all => @subscribe.tags)
我如何获得一些新闻项目的所有订阅?
例如:
item.tags = ["foo", "bar"]
subscribe1.tags = ["foo"]
subscribe2.tags = ["bar"]
subscribe3.tags = ["foo", "bar"]
subscribe4.tags = ["foo", "bar", "baz"]
item.subscribes应该给订阅1..3,但subscribe4不应包括在内,因为它不包括在item.tags
一个“巴兹”标签
我不是100%清楚这里的预期。你能够提供:样品对象,预期的查询结果。这将有助于我们制定恰当的查询。 – 2011-04-26 06:28:44
我编辑过的例子,所以我希望你能理解它。 – sandrew 2011-04-26 14:07:20