【发布时间】:2011-11-09 21:17:30
【问题描述】:
我想获取现有数据并将其放入 RavenDB。
我现有的数据是 XML 格式,所以我将其转换为 JSON。
我的下一步应该是什么? 我可以将它按原样存储在 RavenDB 中吗? 我需要创建新对象来存储它吗?
提前致谢!
【问题讨论】:
-
@ShaunWilson 这就是为什么它被发布为评论,而不是作为答案。
标签: c# json nosql json.net ravendb
我想获取现有数据并将其放入 RavenDB。
我现有的数据是 XML 格式,所以我将其转换为 JSON。
我的下一步应该是什么? 我可以将它按原样存储在 RavenDB 中吗? 我需要创建新对象来存储它吗?
提前致谢!
【问题讨论】:
标签: c# json nosql json.net ravendb
使用 RavenDB 客户端向 RavenDB 提交内容不是强制性的,也不需要首先填充域模型。这是不必要的工作,只会使数据提交/插入/迁移/导入的过程复杂化。
您可以使用HTTP API 直接向 RavenDB 提交 JSON 格式的文档,特别是您可能希望查看“单文档操作”主题以获取简单示例(当前)显示使用“curl”的示例。
考虑以下 .NET 代码:
var url = string.Format("http://ravendb-server:8080/databases/{0}/docs/{1}", databaseName, docId);
var webRequest = System.Net.HttpWebRequest.CreateHttp(url);
webRequest.Method = "PUT";
webRequest.ContentType = "application/json";
webRequest.Headers["Raven-Entity-Name"] = entityName;
var stream = webRequest.GetRequestStream();
using (var writer = new System.IO.StreamWriter(webRequest.GetRequestStream()))
{
writer.Write(json);
}
var webResponse = webRequest.GetResponse();
webResponse.Close();
上面的sn-p允许你将一个有效的JSON文档提交到一个特定的数据库和一个具有指定ID的特定文档集合中。通过 URL 路径执行数据库选择和 ID 指定,并使用元数据标头 Raven-Entity-Name 指定文档集合。
有additional metadata headers您可能想发送,例如Raven-Clr-Type或Last-Modified,但它们不是必需的。
【讨论】:
我假设您的 json-data 代表您的应用程序域的数据,并且您希望拥有具有属性的类以在您的应用程序中处理该数据,对吗?
如果是这种情况,您需要编写一个简单的导入应用程序,它会填充您的域模型一次,然后将所有对象存储为常规 RavenDB 文档,就像使用 RavenDB 存储任何其他对象一样。
这有意义吗?
【讨论】: