这里的新手-我正在建立一个具有许多字段(即列)的非规范化电影数据库,例如标题,日期,类型,每部电影的预算...我想添加更多字段-可能多达70多个...!由于速度快,我目前正在考虑使用Mongodb-但是,我知道mongodb是非关系型的---这是我的问题:
这是否意味着我将拥有一个巨型集合(我知道有一个import org.testng.annotations.DataProvider;
import org.testng.annotations.*;
public class JUNKdP {
@DataProvider( name = "junkDP")
public static Object[][] junkDP() {
Object [] [] dataSet = new Object[][] {
new Object[] {1, 2},
new Object[] {3, 4},
new Object[] {5, 6}};
return dataSet;
}
}
public class JUNK {
private int totalAmount = 0;
@BeforeClass
public void beforeClass(){System.out.println("BeforeClass\n");}
@BeforeMethod
public void beforeMethod(){
System.out.println("BeforeMethod\n");
}
@AfterMethod
public void afterMethod(){
System.out.println("AfterMethod\n");
}
@AfterTest
public void afterTest(){
System.out.println("AfterTest\n");
this.totalAmount = 0;
System.out.println("Reset total amount to 0");
}
@AfterClass
public void afterClass(){System.out.println("AfterClass\n");}
@Test(dataProvider = "junkDP", dataProviderClass = JUNKdP.class, enabled = true)
public void test(int a, int b){
System.out.println("Test method");
int sum = a + b;
System.out.println("Sum: " + sum);
this.totalAmount = this.totalAmount + sum;
System.out.println("totalAmount: " + this.totalAmount + "\n");
}
}
mongodb函数-但我不知道为什么有人会使用它-因为从本质上讲,您不会在那个时候做一个SQL数据库(而不是Mongo)?
我在Mongo数据库中可以有多少个字段限制?
在此处打开书-如果您对哪种类型的数据库/我应该如何设置它还有其他建议,请告诉我。请注意,我正在使用node.js。
答案 0 :(得分:0)
关于#1:是的,要走的路是一大收藏。除非绝对没有其他方法,否则请不要使用lookup
,因为整个聚合框架只是处理不良数据库设计的缓慢手段。对于MongoDB,不要问自己存储的方式,问自己如何查询的东西。要从根本上制作电影的列表和详细视图,最好使用一个集合(在常见搜索字段上使用索引,也许是全文本索引,在概述列表中使用少量投影字段)。
关于#2:数量没有限制,但文档大小没有限制:单个文档限制为16 MB。只要我们在谈论文字,通常对于所有实际目的来说就足够了。
#3的更多想法: 如果您对演员有类似的引用:将显示电影信息时所需的“演员”对象的子集放到电影对象中,这样就只需要查询单个电影的整个详细视图。如果用户单击该演员,您仍然可以打开详细视图,并在演员集合上使用单独的查询来显示演员的详细信息。