繁体   English   中英

Mongo Shell JavaScript数组扩展

[英]Mongo shell javascript array extensions

因此,我试图在mongodb shell中使用javascript数组扩展(Array.prototype函数),但似乎未定义它们。 我认为这对我来说还可以,但我非常想在实际需求(即小组)和地图缩减中使用它们。 我正在使用mognodb 2.4.10版本。 在此处表示2.4 plus应该具有ES5阵列扩展。 它们只是不能在外壳中使用吗?

具体来说,填充方法不起作用

test = [1, 2, 3, 4]
test.fill(0)

无法说出TypeError:对象1,2,3没有方法“填充”

为什么Array.fill()不起作用?

Array.fill()是ES6规范的拟议部分(截至2014年8月仍处于试验阶段),因此在MongoDB 2.4或2.6 mongo shell或服务器端JavaScript中绝对不支持立即使用。

什么是新的ES5阵列方法?

2.4 plus应该具有ES5阵列扩展

九个新的Array方法在ES5: indexOflastIndexOfeverysomeforEachmapfilterreducereduceRight

您可以在ES5规范中找到有关可用数组方法的更多信息。

有使用Array.fill()的解决方法吗?

如果您确实要使用此功能,那么Mozilla开发人员网络文档中恰好Array.fill()参考实现 您可以将此代码嵌入到Map-Reduce函数中,或将服务器端JavaScript函数适当地存储在system.js中。

注意:通常,出于性能原因,不建议在MongoDB中使用服务器端JavaScript。 服务器端功能将增加所有服务器端JavaScript上下文的开销,因此,如果您只需要特定或不经常使用的Map-Reduce作业,则最好嵌入代码。

扩展mongo shell

还可以使用以下几种方法之一使用自定义JavaScript函数扩展mongo shell:

  • 将JavaScript代码粘贴到活动的mongo shell会话中。
  • 使用load()加载和评估JavaScript文件的内容。
  • 将JavaScript代码保存到~/.mongorc.js以便在启动mongo shell时加载此代码。
  • 使用db.loadServerScripts()可以为当前数据库加载保存在服务器端system.js集合中的所有JavaScript函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM