千家信息网

MongoDBRuby中如何嵌入Javascript

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关MongoDBRuby中如何嵌入Javascript,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MongoDBRuby中
千家信息网最后更新 2026年11月01日MongoDBRuby中如何嵌入Javascript

这篇文章将为大家详细讲解有关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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

工作 信息 函数 方法 不好 之间 内容 差异 文章 更多 最好 状态 知识 程序 篇文章 语法 语言 读者 测试 统计 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 博彦科技互联网金融 为想互联网科技怎么样 科技与互联网 互联网科技会 九亚互联网科技 互联网科技缩写 科技互联网创业计划书 上海亿帐通互联网科技 互联网金融和金融科技 青岛中康互联网医疗科技有限公司 济南华为互联网科技产业总部基地 互联网科技实习生岗位职责 阿里互联网科技公司 成都铂石互联网科技做什么的 青岛科技大学互联网大赛研究生 互联网科技快讯热点 科技信息时代互联网发展 平安好医生打造互联网科技医疗 宁波允成互联网科技有限公司 山东特亿宝互联网科技有限公司 江苏根荣互联网科技 国智互联网科技 互联网科技公司电话 深圳期待互联网科技 银川新华互联网科技学校联系电话 工业互联网等科技实现智能化赋能 互联网科技如何创业 扫呗互联网科技有限公司 北京互联网科技类企业分布
0