0
我在使用Mongoid和MongoDB創建應用程序。我有了一個輪廓像這樣一個用戶:Mongoid Map使用has_one減少
class User
field :email, :type => String
field :name, :type => String
field :date_of_birth, :type => DateTime
has_one :profile
end
class Profile
field :votes, :type => Hash
field :biography, :type => String
belongs_to :profile
end
的票散的結構,像這樣:
profile : {
"user_id" : ObjectId("511b76b0e80c505750000031"),
"votes": {
"vote_count": 3,
"up_votes": 3,
"down_votes": 0
}
}
我運行圖減少,像這樣:
map = "
function() {
values = {
name: this.name
}
emit(this._id, values);
}
"
reduce = "
function (key, emits) {
return emits;
}
"
User.map_reduce(map, reduce).out(replace: "leaderboards").each do |document|
ap document
end
該作品罰款並在Mongo中創建一個名爲排行榜的新集合。不過,我試圖從配置文件中映射一些數據,因此它包含配置文件中的vote_count字段。
從根本上讓我的地圖功能看起來像這樣:
map = "
function() {
values = {
name: this.name,
votes: this.profile.votes.vote_count
}
emit(this._id, values);
}
"
但是我有困難拿到與用戶相關的配置文件。有誰知道我如何從用戶配置文件中提取數據?
如果有什麼不明白的地方讓我知道。任何幫助,將不勝感激。
託尼