使用C#MongoDB查询嵌套文档
发布时间:2020-12-16 09:55:34 所属栏目:百科 来源:网络整理
导读:我有一个名为Record的文档,其中包含一个运动员作为嵌套文档.结构在 JSON中看起来像这样: { "Id": "000000000000000000000000","Description": "sample string 1","Athlete": { "Id": "123456789101112131415161","Name": "sample string 2","Username": "sa
我有一个名为Record的文档,其中包含一个运动员作为嵌套文档.结构在
JSON中看起来像这样:
{ "Id": "000000000000000000000000","Description": "sample string 1","Athlete": { "Id": "123456789101112131415161","Name": "sample string 2","Username": "sample string 3",... },... } 你如何查询这个结构来检索基于Athlete.Id的Record对象? I.E.如果我有运动员的身份证而且我想找回他们的记录,你会怎么做? 解决方法
方法1:使用原始BsonDocument :(它将返回BsonDocument列表)
var queryString = Query.EQ("Athlete.Id","123456789101112131415161"); var resultBsons = collection.Find(queryString).ToList(); 方式2:另一种方法是使用mongodb c#驱动的Typed版本: 定义2个类: public class Athlete { public string Id { get; set; } public string Name { get; set; } public string Username { get; set; } } public class Record { public string Id { get; set; } public string Description { get; set; } public Athlete Athlete { get; set; } } 然后做你的查询 var url = new MongoUrl("mongodb://localhost"); var client = new MongoClient(url); var server = client.GetServer(); var database = server.GetDatabase("test"); var collection = database.GetCollection<Record>("records"); var query = Query<Record>.EQ(i => i.Athlete.Id,"123456789101112131415161"); var result = collection.Find(query).ToList(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |