J'ai lu cette question et que vous n'avez pas à comprendre. Est-il de la capacité d'exécuter des commandes arbitraires mongodb script shell via C# pilote?
Pouvez-vous me dire si il ya un moyen pour le invoqué le javascript pour le retour de types complexes ( ce qui est finalement POCOs dans le code C#) retour à la C# module? Si je ne me trompe pas mongodb .net pilote pour Database.Eval() méthode renvoie BsonValue - le résultat de l'exécution de script sur le serveur. Vous pouvez essayer de la convertir en quelques BsonDocument, en prenant en considération le fait que l'exécution du script peut être omis par le serveur, et à la place des Données dans BsonValue vous aurez le message d'erreur dans le Eval()s'entraîner. De toute façon, ce code est un hack. Si vous êtes en utilisant ce code dans des conditions normales d'application de flux d'exécution, vous êtes certainement fait quelque chose de mal. Thx. Pourriez vous s'il vous plaît prendre un coup d'oeil à stackoverflow.com/questions/35456071/... ?
Non, vous auriez besoin de lancer un shell Mongo processus, en utilisant quelque chose comme Processus.Démarrer, et de passer la commande que vous souhaitez exécuter, par exemple
Cependant, la C# pilote peut faire la plupart des choses de la coquille peut, donc, si possible, il est beaucoup plus facile d'utiliser le pilote directement.
Je n'ai pas testé vous proposition à exécuter mongo admin util à l'aide de Process.Start et en passant commande à exécuter. Mais il semble que cela devrait fonctionner. C'est dommage, que je n'arrive pas seulement avec C# pilote ici. À l'aide de mongo admint util et Process.Start semble un peu maladroit. Si personne n'ajoute aucune nouvelle idée de comment l'utiliser seulement C# pilote pour exécuter arbitrairement du mongo script shell le plus proche du temps, je vais accepter cette réponse.
server.RunAdminCommand(@"db.blog.insert({title: ""My Blog Post""});"); donne erreur Command 'db.blog.insert({title: "My Blog Post"});' failed: no such cmd: db.blog.insert({title: "My Blog Post"}); (response: { "errmsg" : "no such cmd: db.blog.insert({title: \"My Blog Post\"});", "bad cmd" : { "db.blog.insert({title: \"My Blog Post\"});" : true }, "ok" : 0 }) Semble que le script arbitraire ne pouvait pas être exécutée à l'aide de MongoServer.RunAdminCommand() méthode.
Ceci est utile lorsque vous tentez de modifier les types de propriété, par exemple comme ceci:
Ce code change de type de
someProperty
qui est l'élément d'une collection d'une collection:Si je ne me trompe pas mongodb .net pilote pour
Database.Eval()
méthode renvoieBsonValue
- le résultat de l'exécution de script sur le serveur. Vous pouvez essayer de la convertir en quelquesBsonDocument
, en prenant en considération le fait que l'exécution du script peut être omis par le serveur, et à la place des Données dansBsonValue
vous aurez le message d'erreur dans leEval()
s'entraîner. De toute façon, ce code est un hack. Si vous êtes en utilisant ce code dans des conditions normales d'application de flux d'exécution, vous êtes certainement fait quelque chose de mal.Thx. Pourriez vous s'il vous plaît prendre un coup d'oeil à stackoverflow.com/questions/35456071/... ?
OriginalL'auteur Dao
Non, vous auriez besoin de lancer un shell Mongo processus, en utilisant quelque chose comme Processus.Démarrer, et de passer la commande que vous souhaitez exécuter, par exemple
Cependant, la C# pilote peut faire la plupart des choses de la coquille peut, donc, si possible, il est beaucoup plus facile d'utiliser le pilote directement.
Process.Start
et en passant commande à exécuter. Mais il semble que cela devrait fonctionner. C'est dommage, que je n'arrive pas seulement avec C# pilote ici. À l'aide de mongo admint util etProcess.Start
semble un peu maladroit. Si personne n'ajoute aucune nouvelle idée de comment l'utiliser seulement C# pilote pour exécuter arbitrairement du mongo script shell le plus proche du temps, je vais accepter cette réponse.OriginalL'auteur Chris Fulstow
Je ne l'ai pas essayé mais je pense que c'est ce que vous cherchez:
MongoServer.RunAdminCommand Méthode (String)
http://api.mongodb.org/csharp/1.1/html/a83249ae-0989-7c24-7240-4506053d83c1.htm
server.RunAdminCommand(@"db.blog.insert({title: ""My Blog Post""});");
donne erreurCommand 'db.blog.insert({title: "My Blog Post"});' failed: no such cmd: db.blog.insert({title: "My Blog Post"}); (response: { "errmsg" : "no such cmd: db.blog.insert({title: \"My Blog Post\"});", "bad cmd" : { "db.blog.insert({title: \"My Blog Post\"});" : true }, "ok" : 0 })
Semble que le script arbitraire ne pouvait pas être exécutée à l'aide de
MongoServer.RunAdminCommand()
méthode.OriginalL'auteur DavidJBerman