[英]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()
是ES6規范的擬議部分(截至2014年8月仍處於試驗階段),因此在MongoDB 2.4或2.6 mongo
shell或服務器端JavaScript中絕對不支持立即使用。
2.4 plus應該具有ES5陣列擴展
有九個新的Array方法在ES5: indexOf
, lastIndexOf
, every
, some
, forEach
, map
, filter
, reduce
和reduceRight
。
您可以在ES5規范中找到有關可用數組方法的更多信息。
如果您確實要使用此功能,那么Mozilla開發人員網絡文檔中恰好有Array.fill()
的參考實現 。 您可以將此代碼嵌入到Map-Reduce函數中,或將服務器端JavaScript函數適當地存儲在system.js
中。
注意:通常,出於性能原因,不建議在MongoDB中使用服務器端JavaScript。 服務器端功能將增加所有服務器端JavaScript上下文的開銷,因此,如果您只需要特定或不經常使用的Map-Reduce作業,則最好嵌入代碼。
mongo
shell 還可以使用以下幾種方法之一使用自定義JavaScript函數擴展mongo
shell:
mongo
shell會話中。 load()
加載和評估JavaScript文件的內容。 ~/.mongorc.js
以便在啟動mongo
shell時加載此代碼。 db.loadServerScripts()
可以為當前數據庫加載保存在服務器端system.js
集合中的所有JavaScript函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.