2011-02-27 20 views
5

Tengo una colección llamada "servidores" con los siguientes documentos.MongoDB: cómo cargar la colección con matrices anidadas en 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ómo seleccionaría eso de MongoDB usando C# using structures?

Respuesta

7

Si desea que todos los artículos que puede utilizar el código follwoing:

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

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

Pero si usted quiere, por ejemplo, todos los documentos con nombre = oeste, lo que puede:

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

Bien gracias. Eso funciona bien –

+0

De nada. –

+0

Eso funcionaría con Sturct también, ¿verdad? No solo clase, sino también estructura. –

Cuestiones relacionadas