[英]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.