我使用Mongoid构建了一个Rails应用程序,我需要一个模型中的标签。
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
答案 0 :(得分:1)