使用C#驱动程序序列化BsonArray

时间:2018-02-28 21:57:29

标签: asp.net mongodb mongodb-.net-driver mongodb-csharp-2.0

问题:我有一个包含两个数组的Mongo文档。其中一个数组很大,带有子文档。这个序列化没有问题。另一个是这种类型的简单数组:

staffgroups {" Tech"," Sales"}

这个不会序列化。我得到错误称它是BsonArray。我能够最接近序列化产生一个字符串。我需要一个JSON对象。

代码时间:

public class specialtyGroup
{

    public ObjectId _id { get; set; }
    public string name { get; set; }
    public string location { get; set; }
    public coachConfig config { get; set; }
    public schedules[] coaches { get; set; }
    public BsonArray staffgroups { get; set; }

}

和网络服务:

public void GetGroups()
    {

        var client = new MongoClient();
        var db = client.GetDatabase("MongoTul");
        var coll = db.GetCollection<specialtyGroup>("specialtyGroups");

        string cname = HttpContext.Current.Request.Params["loc"];

        var creatures = coll.Find(b => b.location == cname)
            .ToListAsync()
        .Result;

        JavaScriptSerializer js = new JavaScriptSerializer();
        Context.Response.Write(js.Serialize(creatures));
    }

我尝试过使用聚合和投影。我已经尝试为staffgroups创建一个额外的类(适用于我的复杂数组)。还有其他一些事情。一切都不好。

最常见的错误如下所示:无法转换类型&#39; MongoDB.Bson.BsonString&#39;输入&#39; MongoDB.Bson.BsonBoolean&#39;。

1 个答案:

答案 0 :(得分:0)

我在此之前花了好几个小时才发布,然后发布后我在30分钟内弄明白了。遗憾。

答案是员工队伍应该是&#34; public string [] staffgroups {get;设置;}

因此,如果像我这样的其他任何问题都有这个问题,那么就有答案。