2014-07-05 170 views
1

我使用ScopedDbConnection,它在每個數據庫操作中進行。如果我這樣做:mongodb C++驅動程序驗證

mongo::ScopedDbConnection conn(host); 
conn->auth(BSON("user"<<"user1"<<"pwd"<<"password1")); 
... 
conn.done(); 

這意味着在每個db操作中都會涉及auth進程,這是不必要的。在java驅動程序中,有一個具有驗證功能的DB類,在「db.authenticate(...)」之後,所有後續操作都可以執行,而不是像上面的代碼那樣在每個數據庫連接上進行驗證。

有沒有辦法在C++驅動程序中只驗證一次?

回答

0

考慮以下解決方案:

conn_ = new DBClientReplicaSet(...); 
conn_->connect(); 
conn_->auth(BSON("user" << "xxx" << "password" << "xxx")); 

然後你可以使用conn_做任何數據庫操作。

+0

這個「conn_」不能併發 – jean

+0

是的,也許。在我們的應用程序中,我們不同時使用** conn _ **。 – rookiepig