如果我想保存一个我要保存的项目列表,其数量> 30,我会收到错误消息
已达到此会话允许的最大请求数(30).Raven限制允许会话作为早期预警系统进行的远程调用的数量.会话预计会很短暂,并且Raven提供了诸如Load(string []键)之类的工具来一次加载多个文档并批量保存.
我该怎么做才能解决这个问题?这个错误的问题是我没有加载,我正在尝试保存文档.任何想法,将不胜感激.谢谢
我正在尝试迁移现有的Web应用程序以使用RavenDB.
我目前在我的Web应用程序中有页面,允许您根据查询字符串中的id查看Categories,SubCategories和Resources.
但是我注意到RavenDB为聚合根生成了id,但是没有为子实体生成id.
我不认为子类别是聚合根(类别具有子类别),因此我将其作为我的类别文档的子文档.
我错误地将其作为子文档,因为我通过查询字符串传入的id直接访问它?但如果没有,我应该如何访问单个SubCategories,因为RavenDB似乎不为非聚合根的实体生成id?
对于我正在编写的小型PHP应用程序,我们需要存储大量具有哈希键的记录,以及一些简单的字段值('host','path').例如:
'4420ffb32a' => array(
'host' => '127.0.0.1',
'path' => 'path/to/resource',
);
Run Code Online (Sandbox Code Playgroud)
这样的数据最好的持久存储是什么?MySQL是最好的选择,还是对于这样简单的数据有点过分?什么能带来最佳表现?
面向文档的数据库(特别是RavenDB)真的很吸引我,而且我想和他们玩一下.然而,作为一个非常习惯于关系映射的人,我试图想到如何在文档数据库中正确建模数据.
假设我的C#应用程序中有以下实体的CRM(省略了不需要的属性):
public class Company
{
public int Id { get; set; }
public IList<Contact> Contacts { get; set; }
public IList<Task> Tasks { get; set; }
}
public class Contact
{
public int Id { get; set; }
public Company Company { get; set; }
public IList<Task> Tasks { get; set; }
}
public class Task
{
public int Id { get; set; }
public Company Company { get; set; }
public Contact Contact { get; set; }
} …Run Code Online (Sandbox Code Playgroud) data-modeling document-based-database document-database ravendb
是否可以使用Sql Server XML列替代真正的文档数据库(如Couch或Mongo)?
如果我要为文档创建一个带有guid PK Id和XML列的表.与使用文档数据库相比,主要问题是什么?
Sql Server支持对XML列进行索引,因此查询不应该是完全可怕的吗?
是否可以链接ArangoDB中不同集合中的文档,就像它在OrientDB中一样?
在OrientDB中,您可以创建一个类型的字段LINK并指定链接的类型.这创造了两个文件之间的关系.
我是否必须使用边集合在ArangoDB中执行此操作?
我正在尝试定义一个主集合和一个辅助集合,其中包含额外的信息以补充主要集合.我不希望主集合中包含所有数据,因为这是在其他实体之间共享的.
提前致谢.
我正在学习DocumentDb中的数据建模.这是我需要一些建议的地方
请看下面我的文档是什么样的.
我可以采取两种方法,既有利也有弊.
场景1:
如果我通过将项目团队成员信息(即姓名,电子邮件等)保存在与项目相同的文档中来保持数据非规范化(请参阅下面的文档),我可以在一个查询中获取我需要的信息但是当Jane Doe结婚,她的姓氏改变了,我必须更新Projects系列中的很多文件.我还必须非常小心地确保包含员工信息的文档的所有集合也得到更新.例如,如果我在Projects集合中更新Jane Doe的名字但忘记更新TimeSheets集合,那我就麻烦了!
场景2:
如果我保持数据有些规范化并且只在项目文档中保留EmployeeId,那么每当我想获得项目列表时,我就可以运行三个查询:
然后我可以组合我的应用程序中的所有数据.
这里的问题是DocumentDb现在似乎有很多限制.我可能正在阅读项目团队中数百名员工的数百个项目.看起来没有有效的方法来获取其Id出现在我的第二个查询中的所有员工信息.请再次注意,我可能需要在此处提取数百个员工信息.如果以下SQL查询是我用于员工数据的,我可能需要运行几次相同的查询以获取我需要的所有信息,因为我认为我不能拥有数百个OR语句:
SELECT e.Id, e.firstName, e.lastName, e.emailAddress
FROM Employees e
WHERE e.Id = 1111 OR e.Id = 2222
Run Code Online (Sandbox Code Playgroud)
我知道DocumentDb仍在预览中,其中一些限制将得到修复.话虽如此,我该如何处理这个问题?如何有效地存储/管理和检索我需要的所有项目数据 - 包括项目团队信息?方案1是更好的解决方案还是方案2还是有更好的第三种选择?
这是我的文档的样子.一,项目文件:
{
id: 789,
projectName: "My first project",
startDate: "9/6/2014",
projectTeam: [
{ id: 1111, firstName: "John", lastName: "Smith", position: "Sr. Engineer" },
{ id: 2222, firstName: "Jane", lastName: "Doe", position: "Project Manager" }
]
}
Run Code Online (Sandbox Code Playgroud)
这里有两个员工文档,它们位于Employees集合中:
{
id: 1111,
firstName: "John",
lastName: "Smith",
dateOfBirth: "1/1/1967',
emailAddresses: …Run Code Online (Sandbox Code Playgroud) 我在Windows上运行MongoDB.我有一个或多个线程删除并重新创建一个集合.
使用mongo.exe与show collections()命令,我看到名称相同的多个集合(超过1000个集的同名!).
当我运行验证时:
> db.MY_COLLECTION.validate()
Run Code Online (Sandbox Code Playgroud)
我明白了:
{ "errmsg" : "ns not found", "ok" : 0, "valid" : false }
Run Code Online (Sandbox Code Playgroud)
该size()命令返回0,并且不find()返回任何内容.
我的问题是:MongoDB线程安全吗?接下来的问题将是"我是否正确地执行此操作(删除和重新创建),还是有更好的方法来刷新集合的整个内容?"
concurrency multithreading thread-safety mongodb document-database
面向对象和文档数据库之间有什么区别?
我没有使用面向对象的数据库,但是当我使用文档数据库(RavenDb)时,我存储和读取通常的面向对象的类没有问题.
我是MongoDB的新手,所以请耐心等待.
我有两个问题:
首先,请采取以下措施:
// add a record
$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
Run Code Online (Sandbox Code Playgroud)
MongoDB是否将"title"和"author"存储为此集合中此对象的每个条目的文本?或者它是否创建了一个模式并将它们转换为字段数(或者根本没有存储并纯粹存储数据)?
我的第二个问题是:什么时候应该使用"关系"?假设我有100个经销商,每个经销商包含(对象)1,000个客户,每个客户有10个项目.这使得一个巨大的整体对象可以操纵.
在SQL世界中,这都是相关的"对象".在Document world中,我们尝试通过嵌入子对象来存储完整的对象.
但是,这可能很笨拙.这是什么最好的做法?有人可以指点我的指南.
谢谢.
ravendb ×4
mongodb ×3
arangodb ×1
c# ×1
concurrency ×1
couchdb ×1
database ×1
hyperlink ×1
join ×1
linq ×1
mysql ×1
nosql ×1
php ×1
sql-server ×1
xml-column ×1