簡體   English   中英

如何從 php mongodb javascript 函數調用?

[英]how to call from php mongodb javascript function?

在 php 中,我調用 mongodb javascript 函數 start()

$username="root"; 

$password="root";

$mongo_uri="mongodb://".$username.":".$password."@localhost";

$connection = new MongoClient( $mongo_uri );

$db = $connection->test;

$response = $db->execute("start()");

print_r($response);

由於得到

 Array
    (

        [ok] => 0

        [errmsg] => unauthorized

    )

$username + $password + $mongo_uri - 對, $db 給 ok connect ,

但是在$response = $db->execute("start()");上得到一個未經授權的錯誤$response = $db->execute("start()");

如何從 php mongodb 函數 start() 調用?

這里的execute()方法是作為 MongoDB 的db.eval()方法的包裝器實現的。 所以大概你指的是你在服務器啟動時加載的一些服務器端 JavaScript 方法。

身份驗證角色手冊頁所示, eval需要可能尚未授予您用於身份驗證的帳戶的特殊權限。 這可能是一件好事,因為對於一般的 CRUD 操作,使用的帳戶不應具有這些權限級別。 如果有的話,這種操作應該只用於它自己的特權連接。

對於生產系統來說,執行服務器端 JavaScript 通常不是一個很好的主意,如果你的函數實際上是相當微不足道的,那么最好在你的本地庫代碼中重新實現它。

所以請注意db.eval()手冊頁上的警告,還要注意即使分配了正確的權限,您也無法在分片集群環境中運行此命令。

最后,如果您絕對需要,還可以查看MongoCode類,以了解通常更好的定義 JavaScript 調用的方法。

eval() 需要特殊權限。

不鼓勵使用它,您需要自己創建角色。

請參閱http://docs.mongodb.org/manual/reference/command/eval/#dbcmd.eval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM