更新 RavenDB 文档中的字段

本文关键字:字段 文档 RavenDB 更新 | 更新日期: 2023-09-27 18:32:57

美好的一天,

我有一个RavenDB JSON文档,其中一个字段("信息")包含一个如下所示的字符串:

"{'"value1'":'"9'", '"value2'": '"dog'", ....}"

我想删除转义的"'"字符,以便它被 RavenDB 识别为 JSON 列表。

但是,我尝试使用

newString = oldString.Replace("''", "")

newString = oldString.Replace(@"'", "")

newString = oldString.Trim(new Char[] { @"'" })

但它不起作用。应用上述这些方法后,字符串看起来没有变化。

请参阅下面的完整代码:

            while(true)
            {
                var result = session.Query<Documents>()
                    .Take(1000).Skip(i)
                    .ToList();
                if (result.Count == 0)
                    break;
                foreach (var r in result)
                {
                    string rInfo = r.Info.ToString();
                    rInfo = rInfo.Replace("''", "");
                    PATCHED_Doc r_Doc = new PATCHED_Doc()
                    {
                        Info = rInfo, 
                        Value = "test",
                        Id = r.Id,
                        Date = r.Date,
                    };
                    session.Store(r_Doc);
                    session.SaveChanges();
                }
                session.SaveChanges();
                i += result.Count;
            }

public class PATCHED_Doc
{
    public string Info { get; set; }
    public string Value { get; set; }
    public int Id { get; set; }
    public string Date { get; set; }
}

提前感谢您的帮助。

更新 RavenDB 文档中的字段

您需要将 JSON 解析为一个对象,然后将其移交给 Raven DB。字符串被视为字符串。使用 JSON.NET 库将其解析为匿名对象。 将 Info 属性更改为对象类型。然后将匿名对象分配给 Info 属性。