2016-07-30 8 views
0

Ich möchte jeden MongoDB-Befehl aus C# ausführen können. Ich weiß, dass dies möglich ist. Ich beginne mit einem einfachen Beispiel, anstatt die dropDatabase Methode aus dem C# -Treiber zu verwenden Ich versuche, eine Datenbank unter Verwendung der db.runCommand Methode wie folgt zu löschen.Führen Sie MongoDB-Befehle aus C#

Ich habe auf zwei Arten versucht, den Befehl als String übergeben und auch den Befehl als BsonDocument übergeben, aber nichts funktioniert und ich habe keine Hinweise, wo ich falsch bin, auch nach der Recherche im Internet kann ich nicht finde ein passendes Beispiel.

Ich habe eine wirklich harte Zeit zu identifizieren, warum dieses Stück Code nicht funktioniert.

Befehl als String übergeben:

database.RunCommand<string>("{dropdatabase : 1}"); 

Befehl als BSON Dokument übergeben:

var command = new BsonDocument { {"dropdatabase", "1" } }; 
var execute = database.RunCommand<BsonDocument>(command); 
+0

Was ist das Ergebnis zurückgegeben, wenn Sie den Befehl ausführen? Es sieht so aus, als ob Sie in Ihren Codebeispielen nicht den richtigen Fall verwenden: Der Befehl ist 'dropDatabase': https://docs.mongodb.com/manual/reference/command/dropDatabase/. Bei dem Beispiel aus Kleinbuchstaben würde Ihr Code wahrscheinlich einen Fehler erhalten wie '' kein solcher Befehl: dropdatabase "'. – Stennie

Antwort

0

können Sie verwenden ein JsonCommand wie folgt aus:

var command = new JsonCommand<BsonDocument>("{ dropDatabase: 1 }"); 
db.RunCommand(command); 

oder verwenden Sie eine CommandDocument wie folgt:

var command = new CommandDocument("dropDatabase", 1); 
db.RunCommand<BsonDocument>(command);