0
我想用mongoid來實現查詢funcation喜歡 'GROUP BY',但我捕獲的異常:Mongoid拋出16052例外
failed with error 16052: "exception: could not create cursor over th_test.messages for query : { sr_flag: /.*541260c5aee1a93f70000001.*/ } sort : { created_at: -1 }"
我的代碼是在這裏:
def messages
map = %Q{
function() {
emit(this.sr_flag, { count: 1 });
}
}
reduce = %Q{
function(key, values) {
var result = { count: 0 };
values.forEach(function(value) {
result.count += value.count;
});
return result;
}
}
result = Message.where(sr_flag: /.*#{self.id}.*/).map_reduce(map, reduce).out(inline: true).to_a
result
end
能
人幫我解釋一下爲什麼?我搜索了blog。mongoid是否將created_at列設置爲主鍵?
不,它告訴你,你正在試圖用一個正則表達式來檢查一個ObjectId類型字段,這是你不能做的。改爲使用ObjectId類型作爲值。 – 2014-09-22 03:26:28
謝謝,但我不這麼認爲,我得到'Message.where(sr_flag:/.*# {self.id}。* /')的結果,所以我認爲它是正確的。即使我使用「消息」。 map_reduce(map,reduce).out(inline:true).to_a「,這個例外。 – Devin 2014-09-22 03:39:38