這裏是設置:mongo_mapper查詢返回任何結果,在DB返回直接查詢結果
的Gemfile:
gem 'mongo_mapper', '>= 0.13.0.beta1'
gem 'plucky', '>= 0.6.5'
控制器:
@job = Job.where(:admin_id => a.id)
滑軌控制檯輸出(記錄器):
@job is []
一個「a .ID」值恰好是:
a.id is 51ddbd6b972791243d0000f1
蒙戈直接查詢:
db.jobs.find({ admin_id: "51ddbd6b972791243d0000f1" })
>>>Lots of stuff<<<
多少?
> db.jobs.find({ admin_id: "51ddbd6b972791243d0000f1" }).count()
202
那麼 - 爲什麼當直接在蒙戈完成並返回從控制器調用時一個空數組該查詢返回的結果?
更具體地 - 這裏是簡單的循環:
@tech_d = []
@tech.each do |a|
Rails.logger.info("a.id is " + a.id)
@job = Job.where(:admin_id => a.id)
Rails.logger.info("@job is " + @job.to_a.to_s)
其中產量像這樣的東西:
a.id is 51ddbd6b972791243d0000f1
@job is []
a.id is 51f976f2811d830002000adc
@job is []
但正如我已經證明了 - 做的時候有結果,以這種簡單的查詢直接在Mongo。
**編輯 - 我已經試過mongo_mapper寶石0.12.0的GA版本,其結果都是一樣的(降級勇敢到0.5.2匹配 - 無變化)
不 - 對不起 - 這不是答案。我試過Job.where(查詢),Job.all(查詢),Job.where({查詢}),Job.all({查詢}),甚至瘋狂與Job.find(當然不是一個mongo_mapper函數)。我一直在使用Mongo和Plucky一段時間,並且在我的應用程序中執行許多像這樣的查詢。特別是對這個有點奇怪。 – notaceo