繁体   English   中英

将BSON文档插入收藏夹(C#)

[英]Inserting BSON Document into Collection (C#)

我正在尝试将BSON文档插入Mongo集合中。

MongoDB.Driver.MongoCommandException:'命令插入失败:解析字段文档::的元素0时出错,由::导致'0'字段的类型错误,预期对象,找到0:[{选区:“北阿伯丁”,选举:“ 2010年大选”,选举人:64808,多数:8361,ResultOfElection:“实验室保留”,投票率:37701,投票率:100.0}]。

下面是我的代码。

    public void retrieveElectionResuts(string url)
    {
        var client = new RestClient(url);
        var request = new RestRequest(Method.GET);
        request.AddHeader("Accept", "application/json");

        IRestResponse response = client.Execute(request);
        var con = response.Content;

        //Cleaning JSON format
        RootObject result = JsonConvert.DeserializeObject<RootObject>(con);
        List<Item> items = result.result.items;
        List<ConstituencyResult> electionResults = new List<ConstituencyResult>();
        MongoContext context = new MongoContext();
        var db = context.connect();
        var collection = db.GetCollection<BsonArray>("constituencyResult");
        foreach (Item item in items)
        {
            ConstituencyResult constituencyResult = new ConstituencyResult
            {
                Constituency = item.constituency.label._value.ToString(),
                Election = item.election.label._value.ToString(),
                Electorate = item.electorate,
                Majority = item.majority,
                ResultOfElection = item.resultOfElection,
                Turnout = item.turnout,
                TurnoutPercentage = ((item.electorate) / (item.turnout)) * 100               
            };


            BsonArray array = new BsonArray();
            array.Add(constituencyResult.ToBsonDocument());
            collection.InsertOne(array);


        }
    }

我尝试过直接添加文档(即,不将其放入BSON数组中),但这仍然会引发错误。

您不能将BsonArray添加到集合中,因为MongoDB文档是一组具有关联值的键。 添加数组时,关键是什么?

您当然可以有一个包含数组的字段。 可以通过以下方式添加:

var collection = database.GetCollection<Object>("constituencyResult");
collection.InsertOne(new
{
    SomeArray = array
});

在这种情况下,文档将具有SomeArray字段来保存数组数据。

我尝试过直接添加文档(即,不将其放入BSON数组中),但这仍然会引发错误。

如果建议的答案不是您所需要的,并且在将ConstituencyResult对象添加到集合中时出现异常,请使用ConstituencyResult定义和所获取的异常来更新您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM