Можете ли вы предоставить больше информации? Какую команду вы выполняете?
Возможно, вы просто хотите запросить коллекцию сообщений, и в этом случае вам следует использовать метод FindAll:
var server = MongoServer.Create("mongodb://localhost/?safe=true");
var database = server["test"];
var collection = database.GetCollection<Post>("posts");
var posts = collection.FindAll().ToList();
[Изменить]
Исходя из вашего комментария ниже, что вы используете структуру агрегации (которая еще не выпущена, но доступна в основной ветке разработки), я могу предоставить некоторую дополнительную информацию.
Драйвер C # еще не поддерживает новую структуру агрегации, но, поскольку он основан на командах, вы можете использовать его даже до того, как драйвер официально его поддерживает. Ключом является понимание того, что CommandResult предоставляет необработанный документ BSON, возвращенный через свойство Response, а затем знание того, как отделить ответ. Например:
var commandResult = collection.RunCommand(aggregationCommand);
var response = commandResult.Response;
foreach (BsonDocument result in response["results"].AsBsonArray)
{
// process result
}
В приведенном выше цикле переменная результата имеет тип BsonDocument. Предполагая, что этот BsonDocument является действительной сериализацией экземпляра Post, вы можете десериализовать его следующим образом:
var post = BsonSerializer.Deserialize<Post>(result);