嘿伙计们,我正在研究我的DBMS mongoDB迷你项目。
我有两个名为“消费者”和“票据”的集合。
Consumer集合包含消费者编号,带有区号的消费者信息。 Bills还包括消费者编号,比尔月(比尔月=“YYMM”),账单金额。
现在我想要一个特定区域代码的每月总账单金额。
请帮忙......
我的收藏架构是
消费者
+ - > “Consumer_Number”int
+ - > “Consumer_Name”字符串
+ - > “Area_Code”int
票据
+ - > “Bill_Number”int
+ - > “Consumer_Number”int
+ - > “Bill_Month”int
+ - > “Bill_Amount”int
我想要输出为
{
Consumer_Number:“1234”,
Area_Code:“02”,
Bill_Amount_01:“234”,
Bill_Amount_02:“404”,
Bill_Amount_03:“534”,
Bill_Amount_04:“200”,
Bill_Amount_05:“150”,
Bill_Amount_06:“190”,
Bill_Amount_07:“150”,
Bill_Amount_08:“300”,
Bill_Amount_09:“450”,
Bill_Amount_10:“540”,
Bill_Amount_11:“230”,
Bill_Amount_12:“600”,
}
答案 0 :(得分:0)
在MongoDB中,您无法通过map-reduce或使用查询在两个集合中执行连接。但在您的情况下,您可以通过使用嵌入式文档方法重新设计您的集合。嵌入式文档方法在空间方面成本很低,但查询性能会很好。
在您的示例中,您可以将消费者集合条目作为 Bills 集合的嵌入文档。示例文档看起来像这样,
{
"Bill_Number": "Bill 1",
"Bill_Month" : "June",
"Bill_Amount" : "1000",
"Consumer" : {
"Consumer_Number": "Consumer 1",
"Consumer_Name ": " John ",
"Area_Code":"Area Code 1"
}
}
现在你甚至不必编写map-reduce代码,你可以使用mongo查询本身进行检索。