2015-07-04 20 views
1

當我啓動mongod進程時,如何將JavaScript庫作爲共享庫加載到mongodb中?在mongod啓動時加載JavaScript共享庫

我在搜索互聯網時找不到解決方案。我到目前爲止搜索的是:

  • 是否有一個鉤子方法,我可以使用,所以我可以load(...)我的庫在啓動?
  • 我可以在啓動時將JavaScript庫傳遞給mongod進程嗎?
  • 我可以在啓動時傳遞mongodb配置文件中的JavaScript庫嗎?

我不知道是什麼,以及如何再搜索:-(任何想法,或者更好的任何解決方案?

+1

'load()'不會做你認爲它在這裏做的事情。這只是客戶獲取JavaScript函數的位置。您不應該將您的生產處理基於服務器JavaScript處理。這是一個「權宜之計」,而不是一個持續的解決方案。 –

回答

2

可以使用system.js集合來存儲的mongod的服務器上運行的JavaScript。它的作用像一個正常的集合,所以你可以添加的功能是這樣的:

db.system.js.save(
{ 
    _id:"helloWorldFunction", 
    value: function() { return "Hello World!"} 
} 

爲了運行腳本,你應該叫db.loadServerScripts();,然後你可以使用你的存儲功能

> db.loadServerScripts(); 
> helloWorldFunction() 
Hello World! 

欲瞭解更多信息,你可以檢查關於主題MongoDB Docs

+0

據我所知,每次啓動服務器時都必須插入函數。或者你知道我是否可以自動化嗎?首先感謝您的回覆。 – Elyasin

+1

從我能找到的,沒有一種方法來指定一個JavaScript文件在mongod啓動時運行。 mongo(shell)啓動可以將JavaScript文件作爲參數,因此您可以在服務器啓動並運行後啓動mongod並創建一個腳本來運行mongo。 –