执行Mongo查询db.collection.runCommand(“text”,{“search”:“search text”})

时间:2013-06-07 06:04:24

标签: c# mongodb c#-4.0

我需要在我的网站中添加全文搜索选项,在mongodb中添加数据库, Mongo查询:

db.collection.runCommand("text",{"search":"search text"})

给出结果,但是如何使用C#执行它?

4 个答案:

答案 0 :(得分:3)

_collection.Insert(new BsonDocument("x", "The quick brown fox"));  

var textSearchCommand = new CommandDocument
{
  { "text", _collection.Name },
  { "search", "fox" }
};
var commandResult = _database.RunCommand(textSearchCommand);
var response = commandResult.Response;

Assert.AreEqual(1, response["stats"]["nfound"].ToInt32());
Assert.AreEqual("The quick brown fox", response["results"][0]["obj"]["x"].AsString);

来源:Mongo

答案 1 :(得分:2)

我认为你正在寻找这个:

var commandResult = collection.RunCommand(aggregationCommand);
var response = commandResult.Response;
foreach (BsonDocument result in response["results"].AsBsonArray)
{
    // process result
}

很好的示例,但有聚合可以在这里找到:https://groups.google.com/forum/?fromgroups#!topic/mongodb-user/8dM1LnHh9-Q

答案 2 :(得分:2)

我在MongoDb.Driver 2.4.4找不到CommandDocument,但JsonCommand有效。

var ru = db.RunCommand<BsonDocument>(new MongoDB.Driver.JsonCommand<BsonDocument>("{getLastRequestStatistics: 1}"));

答案 3 :(得分:0)

我相当普遍的runCommand的shell-to-c#转换规则是这样的:

db.runCommand( <command's json> )

对应

var res = database.RunCommand<BsonDocument>(CommandDocument.Parse("<command's json text>"));