加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读