2011-02-27 10 views
5

Mam kolekcję o nazwie "serwery" z następującymi dokumentami.MongoDB: Jak załadować kolekcję z zagnieżdżoną tablicą w języku 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" 
     } 
    ] 
} 

Jak wybrałbym to z MongoDB przy użyciu C# przy użyciu struktur?

Odpowiedz

7

Jeśli chcesz, aby wszystkie elementy, które można użyć kodu follwoing:

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

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

Ale jeśli chcesz na przykład wszystkie dokumenty z name = Zachodzie, niż można:

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

ServerItem:

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; } 
} 
+0

OK dzięki. To działa dobrze. –

+0

Nie ma za co. –

+0

To też by działało z mocnymi, prawda? Nie tylko klasa, ale także struktura. –

Powiązane problemy