使用c#查询mongodb文档字段值

使用c#查询mongodb文档字段值,c#,mongodb,C#,Mongodb,在我的C#控制台应用程序项目中,我正在使用MongoDB.Driver.2.4.3,并连接到MongoDB 3.2.10 我收集了文档,并将其输出到控制台,代码如下: {“_id”:ObjectId(“58f034bf5c57ef10bc4f8d3d”),“名字”:“克里斯塔诺”,“出生日期”:ISODate(“1995-04-14T02:32:31Z”),“国家”:“巴西”} {u id:ObjectId(“58f0c7bb5c57ef10bc506216”),“名字”:“贝利”,“出生日期”

在我的C#控制台应用程序项目中,我正在使用MongoDB.Driver.2.4.3,并连接到MongoDB 3.2.10

我收集了文档,并将其输出到控制台,代码如下:

{“_id”:ObjectId(“58f034bf5c57ef10bc4f8d3d”),“名字”:“克里斯塔诺”,“出生日期”:ISODate(“1995-04-14T02:32:31Z”),“国家”:“巴西”} {u id:ObjectId(“58f0c7bb5c57ef10bc506216”),“名字”:“贝利”,“出生日期”:ISODate(“2007-05-14T02:32:31Z”),“国家”:“巴西”} {“_id”:ObjectId(“58f0ca995c57ef10bc506763”),“名字”:“安东尼”,“出生日期”:ISODate(“2010-04-14T02:32:31Z”),“国家”:“意大利”}

如何将各个字段值写入控制台,以便可以单独存储和操作这些值

using MongoDB.Bson;
using MongoDB.Driver;

var playerfirstname;
var playerbirthdate;
var playercountry;

var client = new MongoClient("mongodb://localhost:27017");
var DB = client.GetDatabase("football");
var collection = DB.GetCollection<BsonDocument>("players");

var filter = Builders<BsonDocument>.Filter.Eq("country", "Brazil");
var cursor = collection.Find(filter).ToCursor();
foreach (var document in cursor.ToEnumerable())
{
    Console.WriteLine(document);
}
使用MongoDB.Bson;
使用MongoDB.Driver;
变量playerfirstname;
变量playerbirthdate;
var playercountry;
var客户端=新的MongoClient(“mongodb://localhost:27017");
var DB=client.GetDatabase(“football”);
var collection=DB.GetCollection(“玩家”);
var filter=Builders.filter.Eq(“国家”、“巴西”);
var cursor=collection.Find(filter.ToCursor();
foreach(cursor.ToEnumerable()中的var文档)
{
控制台写入线(文件);
}

您应该定义如下所示的类

internal class Player
{
    public ObjectId Id { get; set; }
    public string FirstName { get; set; }
    public DateTime BirthDate { get; set; }
    public string Country { get; set; }
}
然后更改集合类型,如下所示:

var players = DB.GetCollection<Player>("players");
var playersInBrazil = players.AsQueryable()
                             .Where(player => player.Country == "Brazil");

foreach(var playerInBrazil in playersInBrazil)
{
    Console.WriteLine(playerInBrazil.FirstName);
}

我发现错误CS1061'IMongoCollection'不包含'Where'的定义,并且找不到可接受'IMongoCollection'类型的第一个参数的扩展方法'Where'(是否缺少using指令或程序集引用?)严重性代码说明项目文件行抑制状态错误CS1579 foreach语句无法对类型为“?”的变量进行操作,因为“?”不包含“GetEnumerator”的公共定义ConsoleApp1@ikask请检查我的更新并让我知道。谢谢,我收到..错误CS1061'Program.Player'不包含'Country'的定义,并且找不到接受'Program.Player'类型的第一个参数的扩展方法'Country'(是否缺少using指令或程序集引用?)@在传递给
Where
方法的lambda表达式中,应将ikask
Country
重命名为
Country