亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDBRuby中如何嵌入Javascript

發布時間:2021-07-19 11:22:18 來源:億速云 閱讀:128 作者:Leah 欄目:數據庫

這篇文章將為大家詳細講解有關MongoDBRuby中如何嵌入Javascript,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

  MongoDBRuby中怎樣嵌入Javascript

  class Publication

  include Mongoid::Document

  field :name, :type => String

  field :section, :type => String

  field :body, :type => String

  field :is_published, :type => Boolean

  end

  class LongerPublication

  field :extra_body, :type => String

  end

  此時系統中已經存在一個Publication類和一個LongerPublication類。現在需要做一些信息匯總方面的工作,想通過Publication類對象的類型與狀態得到對其的數量統計信息。另外最好能夠按照當前的狀態進行具有針對性的統計分析。

  一種方法是使用Mongo內置的map-reduce。Mongoid擴展了該功能,讓程序員可以使用Ruby程序實現其所需的內聯Javascript函數(mapper和reducer)。讀者可能覺得這種方法并不好,不過似乎這是目前最好的方法了。有很多更復雜的函數將這些Javascript函數分別寫到不同的文件中,這樣做也許更便于測試,但讀者如果自行測試整個工作中這項工作的輸入/輸出,就會發現其性能并不好。

  MongoDBRuby中怎樣嵌入Javascript

  KLASS ="this._type"

  SECTION ="this.section"

  def self.count_by(type)

  map = <   function() {   function truthy(value) {   return (value ==true) ?1 :0;   }   emit(#{type}, {type: #{type}, count:1, published: truthy(this.is_published)})   }   EOF   reduce = <   function(key, values) {   var count =0; published =0;   values.forEach(function(doc) {   count += parseInt(doc.count);   published += parseInt(doc.published);   type = doc.type   };   return {type: type, count: count, published: published}   }   EOF   collection.mapreduce(map, reduce).find()   end   在進行實驗測試時會返回類似如下代碼所示的數據;不過有些讀者在實驗時也有可能返回Mongo::Cursor,通過Mongo::Cursor可以獲取到以下數據。   [{"_id"=>"Publication","value"=>{"type"=>"Publication","count"=>42.0,"published"=>29.0}},

  {"_id"=>"LongerPublication", "value"=>{"type"=>"LongerPublication", "count"=>12.0, "published"=>10.0}}]

  Mongo與Mongoid使我非常喜歡這種信息匯總時的mapreduce工作,特別是將Ruby與Javascript這兩種編程語言混合在一起編寫,并沒有影響到代碼的可讀性。而如果給定一個關系數據庫,用戶有可能寫出各種各樣千奇百怪的SQL語句——因為與其他任意語言和SQL之間的語法差異相比,Javascript和Ruby之間的語法差異都要小得多。

關于MongoDBRuby中如何嵌入Javascript就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昆明市| 洪洞县| 怀仁县| 南雄市| 东莞市| 怀宁县| 乌恰县| 阳江市| 张家口市| 贞丰县| 营口市| 新津县| 晋州市| 延川县| 海伦市| 京山县| 房山区| 内丘县| 五常市| 军事| 清苑县| 定州市| 新和县| 富顺县| 新乡县| 会东县| 宣城市| 宁河县| 岗巴县| 电白县| 博野县| 江北区| 北海市| 太原市| 东安县| 石家庄市| 治多县| 扶沟县| 达日县| 运城市| 安阳市|