2
我使用Mongoid構建了一個Rails應用程序,我需要在我的一個模型中使用標籤。Mongoid標籤 - 從模型中收集獨特的數組項目
class Question
include Mongoid::Document
include Mongoid::Timestamps
has_many :options
belongs_to :user
field :title, type: String
field :options_count, type: Fixnum, default: 0
field :tags, type: Array
end
它工作得很好,我可以用any_in
Question.any_in(tags:'foo')
得到所有問題的標籤,但我怎麼能得到的所有標籤的所有文檔問題?
我正在嘗試使用map/reduce,但它看起來像我只是清掃所有文檔並在Ruby中對待數組,並且它感覺不對。
map = %Q{
function() {
emit(this.title, {tags: this.tags});
}
}
reduce = %Q{
function(key, values) {
var result = [];
values.forEach(function(value) {
result.push(value.tags);
});
return result.toString();
}
}
map_reduce(map, reduce).out(inline: true).each do |doc|
p doc['value']
end
Yap!有用!對不起,這樣的noob問題。 – goo
如何計算所有標籤的出現? – goo
爲此,您將需要使用聚合框架,請參閱http://stackoverflow.com/questions/14617379/mongoose-mongodb-count-elements-in-array – victorkohl