添加新字段(C#)后尝试查询Mongodb数据库时出错

时间:2018-10-25 15:31:52

标签: c# .net mongodb azure-cosmosdb

我有一个名为conversation_trees的集合,并且工作正常,然后我想向其中添加一个新字段,但是当我这样做时,我开始遇到以下错误:

  

抛出异常:MongoDB.Bson.dll中的'System.FormatException'

我的代码:

public List<Node> FindRoot()
{
    List<Node> results = collection.Find(x => x.parents.Length == 0).ToList();
    results.Count();
    return results;
}


[Serializable]
[BsonNoId]
[BsonIgnoreExtraElements]
public class Node
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string node_Id { get; set; }
    public string[] parents { get; set; }
    public string[] children { get; set; }
    public string node_type { get; set; }
    public string text { get; set; }
    public string author { get; set; }
    public bool user_input { get; set; }
    public string ar { get; set; }
}

最初,我已将所有文档从远程服务器复制到新的cosmosdb实例,并且效果很好,但是我自己添加任何字段都会破坏它。

我最初有node_Id(以前只是ID),父母和孩子作为ObjectId和[BsonId],[BsonRepresentation(BsonType.ObjectId)],[BsonNoId]和[BsonIgnoreExtraElements]是我后来添加的所有内容

1 个答案:

答案 0 :(得分:0)

您添加的字段是否可以为空? MongoDB没有有关数据结构的信息。

  • 减少查询。只需尝试选择“旧”字段即可。仍然有这个错误吗?
  • 将添加的文件映射到可为空的变量类型,然后如果文件没有值,则将成员设置为空。