• 1
  • 2
  • 3
  • 4
  • 5
mssql数据库问题 首 页  »  帮助中心  »  数据库  »  mssql数据库问题
MongoDB 2.4版本:JavaScript 的改进
发布日期:2016-4-20 17:4:15

  MongoDB 2.4版本:JavaScript 的改进

   MongoDB开发团队正式发布了MongoDB 2.4版本,超越mssql,新版本主要改进的地方请参阅官方资料。

  本文介绍的是MongoDB 2.4中有一大得意之作:V8引擎。V8引擎代替了之前的Spidermonkey 1.7引擎,这样的改变使得对JavaScript的执行更加高效。

  下面让我们来看看新引擎带来的一些变化:

一、 并发改进

  之前的旧版本中,每一个使用JS解释器进行的查询/命令都要获取一个互斥体,从而序列化所有的JS工作。现在使用V8引擎,并发性得到了改善,现在允许每个JS工作运行在一个单独的核心。

二、现代化的Javascript实现(ES5)

  现在大部分浏览器都已经实现了ECMAscript 5(简称ES5)规范,该版本包含了一些新的功能,如J:

  •       SON
  •      严格模式
  •      function.bind()
  •      数组扩展
  •      getters/setters方法

    通过使用V8引擎,MongoDB现在也支持ES5,现在开发与维护迁移的脚本、MapReduce工作更加容易。

三、 受影响的功能

  当你升级版本到MongoDB 2.4及以上版本时,你需要注意,因为使用了新的JS引擎,所以一些功能也受到了影响。

  针对Map-Reduce和$where操作符的额外限制

  在MongoDB 2.4 shell中可用一些全局函数与属性(如db),现在不能用于Map/Reduce/Finalize、$where和group。当升级到MongoDB 2.4版本后,若你在代码中使用了任何弃用的全局shell函数或属性,则需要重构你的代码。

  新版本中,下面的这些函数或属性可用于 MapReduce、group与$where:

  1.属性:

  •   args
  •   MaxKey
  •   MinKey

  2.函数:

  •   assert()
  •   BinData()
  •   DBPointer()
  •   DBRef()
  •   doassert()
  •   emit()
  •   gc()
  •   HexData()
  •   hex_md5()
  •   isNumber()
  •   isObject()
  •   ISODate()
  •   isString()
  •   Map()
  •   MD5()
  •   NumberInt()
  •   NumberLong()
  •   ObjectId()
  •   print()
  •   sleep()
  •   Timestamp()
  •   UUID()
  •   version()

  移除了非标准的SpiderMonkey功能

  SpiderMonkey实现了一些非标准的JavaScript语言特性,而这些特性在V8中没有提供。不过,该变化的影响比较小,因此在文档中也没有列出。

  关于V8和Spidermonkey的不同之处,可参阅http://docs.mongodb.org/manual/release-notes/2.4-javascript/#removed-non-standard-spidermonkey-features]docs.mongodb.org[/url]

  虽然MongoDB支持ES5实现,但还存在一些例外,比如以下所示的特性,你就无法使用:

  •   Object.seal()
  •   Object.freeze()
  •   Object.preventExtensions()
  •   enumerable properties
  • 之后本站会更新一些mssql的相关信息,关注mssql的敬请期待。