面向文档的数据库(特别是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
我在mongo db中有以下模型:
用户集合
{
_id:12345,
name:15,
age:"Joe",
}
Run Code Online (Sandbox Code Playgroud)
地址集合
{
_id:7663,
userId:12345,
Street:"xyz",
number:"1235",
city:"New York",
state:"NY"
}
Run Code Online (Sandbox Code Playgroud)
现在我想得到20岁以上用户的所有地址.我想的是查询20岁以上用户的所有id,并使用$ in运算符查找地址.
我的问题是,有没有办法把它变成一个查询?有更好的方法来查询吗?(obs:这只是一个例子,我的问题是我无法将地址嵌入用户)
non-relational-database document-based-database mongodb mongodb-query aggregation-framework
是否有使用.NET或Mono的活动"基于文档"的数据库项目?与CouchDB,SimpleDB,LotusNotes等类似的东西...喜欢开源.
我认为JScript.NET技术可以用于存储JSON文档的Map和Reduce函数.
这个问题不一定是Couchbase 2.0开发的具体预览,但我认为它可能会帮助人们调查新的Couchbase产品.
我正在寻找有关数据建模的建议.我们正在调查Couchbase,以便将其用于实时分析.
但是,我找不到任何关于如何最好地模拟现实世界数据的文档.
我将提出一个场景,如果社区可以帮助我或讨论如何建模的一些想法,那将非常有用吗?
请注意,这不代表我们的产品,我不是要求人们为我们解决我们的建模问题更倾向于讨论
让我们假设客户在特定日期/时间做出产品购买,产品与他们的信息,如ID,名称,描述和价格,购买时的日期进行.
最初的要求是能够计算两个日期之间的所有购买.任何1天的购买量可能超过10万 - 这是一项非常大的业务;)
如果任何语法不正确请告诉我 - 欢迎所有建议/帮助.
如果我们将数据建模为类似的东西(可能完全不正确):
购买产品
{
"_id" : "purchase_1",
"_rev" : "1-1212afdd126126128ae",
"products" : [
"prod_1" : {
"name" : "Milk",
"desc" : "Semi-skimmed 1ltr",
"price" : "0.89"
},
"prod_7568" : {
"name" : "Crisps",
"desc" : "Salt and Vinegar",
"price: "0.85"
}
]
"date" : "2012-01-14 14:24:33"
}
{
"_id" : "purchase_2",
"_rev" : "1-1212afdd126126128ae",
"products" : [
"prod_89001" : {
"name" : "Bread",
"desc" : "White thick sliced", …Run Code Online (Sandbox Code Playgroud)