3

Mongoプロセスの接続文字列には/databaseオプションがあります。どういう意味ですか?mongoサーバー上の特定のデータベースを認証するという意味ですか。よろしくお願いします。

4

5 に答える 5

5

C#ドライバーでは、通常、接続文字列にデータベース名を付けるオプションは使用しません。他のドライバーとのある程度の互換性を提供するために部分的にサポートされています。

MongoServer.Createはデータベース名を無視します。接続文字列のすべての資格情報(ユーザー名/パスワード)は、すべてのデータベースのデフォルトの資格情報として使用されます。

データベース名は、MongoDatabase.Createによってのみ使用されます。MongoDatabase.Createは、MongoServer.Createを呼び出してから、GetDatabaseを呼び出します。

それで:

var connectionString = "mongodb://localhost/database";
var database = MongoDatabase.Create(connectionString);

次のショートカットです。

var connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
var database = server.GetDatabase("database");

最初にデータベースを使用しようとするまで、実際には認証は行われません。

于 2012-04-16T15:36:31.397 に答える
1

このような:

var cliente = new MongoClient("mongodb://usuariocualquiera:tuclave@localhost:27017/BASEDEDATOS");

と呼ぶことができます

var collection = database.GetCollection<BsonDocument>("CUALQUIERCOLECCION");
于 2017-05-23T22:42:32.230 に答える
0

指定されたデータベースに接続します。データベースが存在しない場合は接続を確立し、新しいオブジェクトを作成するとデータベースをインスタンス化します

于 2012-04-16T05:38:53.060 に答える
0

adminデータベースで作成されたユーザーmongodbとlocalhost:27017のパスワードmongodbを使用して、mongodプロセスの既存のインスタンスを作成/返します。Connect()を呼び出す必要はありません。ドライバーは必要に応じてこれを自動的に行います。

于 2012-04-16T10:28:54.860 に答える
0

ユーザーアカウントがadminデータベースに作成され、「mongo」と呼ばれるコマンドラインインターフェイス(CLI)プログラムを使用していると仮定すると、次のユーザー名とパスワードを使用して3ノードのレプリカセットに接続できます。

構文:

mongo --host "<replicaset name>/<host 1 resolvable name>:<host 1 port>,<host 2 resolvable name>:<host 2 port>,<host 3 resolvable name>:<host 3 port>" --username <username> --password <password> --authenticationDatabase <database name>

例:

mongo --host "replset1/ip-172-31-48-110.eu-west-1.compute.internal:27017,ip-172-31-116-186.eu-west-1.compute.internal:27017,ip-172-31-29-140.eu-west-1.compute.internal:27017" --username barry --password supersecretpassword --authenticationDatabase admin
于 2019-01-25T17:23:56.427 に答える