如何在c#中存储字符串数组?

时间:2013-09-04 16:52:42

标签: mongodb

无论

HashSet<string> aaa { get; set; }

List<string> aaa { get; set; }

string[] aaa { get; set; }

也存储为:

"aaa": {
     "0": "bbb",
     "1": "ccc" 
},

无法存储为

"aaa": ["bbb", "ccc"] 

1 个答案:

答案 0 :(得分:2)

以下代码与最新的10gen驱动程序以您正在寻找的格式生成文档:

public class MyDocument
{
    public int id { get; set; }
    public string[] aaa { get; set; }
}

class Program
{
    private static void Main(string[] args)
    {
        var client = new MongoClient("mongodb://localhost");
        var server = client.GetServer();
        var db = server.GetDatabase("temp");
        var coll = db.GetCollection("myDocuments");
        var mydoc = new MyDocument
            {
                id = 1,
                aaa = new[] {"bbb", "ccc"}
            };
        coll.Save(mydoc);
    }
}

以下是生成的文件:

/* 0 */
{
    "_id" : 1,
    "aaa" : [ 
        "bbb", 
        "ccc"
    ]
}

IList和List也有效。你有任何自定义的BSON序列化注释吗?你有自定义类地图吗?