c# - MongoDB:如何在 C# 中使用嵌套数组加载集合?

我有一个名为“服务器”的集合,其中包含以下文档。

{
    name: "West",
    ip: "123.123.123.123",
    channels:
    [
        {
            name: "English",
            port: "1234",
            status: "0"
        },
        {
            name: "Spanish",
            port: "1235",
            status: "0"
        },
        {
            name: "German",
            port: "1236",
            status: "0"
        }
    ]
},
{
    name: "East",
    ip: "122.122.122.122",
    channels:
    [
        {
            name: "English",
            port: "1234",
            status: "0"
        },
        {
            name: "French",
            port: "1235",
            status: "0"
        }
    ]
}

如何使用 C# 使用结构从 MongoDB 中选择它?

最佳答案

如果您想要所有项目,您可以使用以下代码:

var server = MongoServer.Create("mongodb://localhost:27020");
var database = server.GetDatabase("someDb");

var servers = database.GetCollection<ServerItem>("servers");
servers.FindAllAs<ServerItem>();

但是,例如,如果您想要 name = west 的所有文档,则可以:

collection.FindAs<ServerItem>(Query.EQ("name","west"));

服务器项:

 public class ServerItem
 {
   public string name { get; set; }

   public string ip { get; set; }

   public List<Channel> channels { get; set; }
 } 

 public class Channel
 {
   public string name { get; set; }

   public int port { get; set; }

   public int status { get; set; }
 }

https://stackoverflow.com/questions/5135576/

相关文章:

mongodb - Java MongoDB 驱动连接问题

mongodb - 使用 mongodb 聚合的多个字段的不同计数

node.js - 使用 winston-mongodb 和 express-winston 进行日

MongoDB - 我可以使用 ObjectId 作为键吗?

javascript - 获取集合和子文档中所有键的名称

mongodb - .NET 是否有与数据库无关的 nosql 框架?

javascript - UnhandledPromiseRejectionWarning 错误 :

mongodb - 要将一条记录与 MongoDB 中的另一条记录相关联,可以使用 slug 吗?

node.js - 如何在没有回调的情况下返回 Mongoose 查询结果

ruby - 是否可以指定查询应在 Mongoid 中使用的索引?