2011-02-27 8 views
5

私は、以下の文書で「サーバ」と呼ばれるコレクションを持っています。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" 
     } 
    ] 
} 

どのように私はMongoDBからC#構造体を使用してそれを選択できますか?

答えて

7

あなたがfollwoingコードを使用することができますすべての項目たい場合:

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

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

をしかし、あなたは、たとえば名前=西持つすべての文書、あなたができるよりもしたい場合:

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

よろしくお願いいたします。それはうまくいく。 –

+0

あなたは大歓迎です。 –

+0

これはsturctでもうまくいくでしょうか?クラスだけでなく構造体も。 –

関連する問題