簡體   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