当我使用我的应用程序搜索文本时,它会返回一个像这样的哈希值,但是结果都是原始哈希值。
{"queryDebugString"=>"xxx||||||", "language"=>"english", "results"=>[{"score"=>1.1, "obj"=>{"_id"=>BSON::ObjectId('52b308a85a686916c9410000'), "_type"=>"Note", "occurred_on"=>2013-12-19 00:00:00 UTC, "title"=>"xxx", "type"=>"other", "description"=>"yyy zzz"}}], "stats"=>{"nscanned"=>1, "nscannedObjects"=>0, "n"=>1, "nfound"=>1, "timeMicros"=>57}, "ok"=>1.0}
如何在结果上映射模型对象?目前我使用的是.new
方法,但#persisted?
是假的。
def self.search(text)
mongo_session.command(text: collection_name.to_s, search: text.to_s, filter: all.selector)['results'].map { |row| new row['obj'] }
end
答案 0 :(得分:0)
your_data = JSON.parse(text)
它返回一个哈希值。
YourObject.new(your_data)
它使用字符串
提供的所有数据构建所需对象答案 1 :(得分:0)
我只是通过为新模型的@persisted分配true来解决这个问题。