首页 > 解决方案 > 蒙哥。C#。我如何执行字符串作为 mongo 查询

问题描述

假设我有一个字符串。" db.getCollection("somecollection").find({})"。我可以在 C# 中将此字符串作为查询执行吗?即我得到一个字符串。我只是将它作为查询执行,但在 c# 中

我只想这样

string query = "db.getCollection("somename")";
Mongo.execute(query);

标签: c#mongodbmongo-shell

解决方案


不,在这种情况下你能做的最好的事情就是使用db.RunCommand<BsonDocument>("{ ping : 1 }")接近 shell 的 (c#)db.runCommand({ ping : 1 })

更新:你也可以看看这个如何通过 shell 脚本执行 mongo 命令?,我对此并不熟悉,并且在 Windows 和 5.0 服务器上的大多数情况下,除了简单的情况外,它对我不起作用:mongo --eval "printjson(db.serverStatus())"但是如果您能够使这个建议的脚本mongo < script.js(或类似脚本)工作例如,在 shell 中,您将能够将随机查询放入此文件(script.js)中,然后将此文件作为参数添加到 Process 创建类似于:

            using (var process = new Process())
            {
                // arguments below may require the whole path to the files
                process.StartInfo.Arguments = "script.js";
                process.StartInfo.FileName = "mongo"; 

                process.Start();
            }

要读取结果,您将需要分析process.StandardOutput/process.StandardError流。


推荐阅读