首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mongodb中计数不同的值文档

在mongodb中计数不同的值文档
EN

Stack Overflow用户
提问于 2019-01-15 13:39:46
回答 1查看 44关注 0票数 0

我试图在blood_category的不同值下计算blood_category的值,作为代码,我只能在blood_category的不同值下输出num_stock的总总和。如何将计数存储在一个数组中?下面是一个示例文档:

Blood_category:“血小板”blood_group:"A",num_stock:10 blood_category:“血小板”blood_group:"B",num_stock:10 blood_category:“全血”blood_group:A,num_stock:20 blood_category:“全血”blood_group:"B",num_stock:20

,我期待这样的输出:

代码语言:javascript
复制
{_id: "platelets", A:10, B:10},
{_id: "whole blood", A:20, B:20},

我尝试过的代码:

代码语言:javascript
复制
Bloodinventory.aggregate([{$group: {_id : "$blood_category" , count :{$sum:"$num_stock"}}},{$sort: {_id: 1}}],function(err, inventory) {     
     res.json({ success: true, inventory: inventory });
});

使用上述示例的,我的代码生成:

代码语言:javascript
复制
{_id: "platelets", count:20},
{_id: "whole blood", count:40},
EN

回答 1

Stack Overflow用户

发布于 2019-01-15 13:45:08

使用当前的文档结构,我无法获得您想要的输出。但是,我可以使用修改过的文档结构来完成它,这可能会对您有所帮助。

这是您当前的文档结构:

代码语言:javascript
复制
db.blood.insertMany([
   { category: "platelet", group: "A", num_stock: 10 },
   { category: "platelet", group: "B", num_stock: 10 },
   { category: "whole blood", group: "A", num_stock: 20 },
   { category: "whole blood", group: "B", num_stock: 20 }
]);

这是修改后的文档结构:

代码语言:javascript
复制
db.blood.insertMany([
   { category: "platelet", stock: { "A": 10 }},
   { category: "platelet", stock: { "B": 10 }},
   { category: "whole blood", stock: { "A": 20 }},
   { category: "whole blood", stock: { "B": 20 }}
]);

使用修改后的文档结构,可以使用聚集管道算子 $mergeObjects

代码语言:javascript
复制
db.blood.aggregate( [
   { $group: { _id: "$category", mergedCategories: { $mergeObjects: "$stock" } } }
])

这意味着:

代码语言:javascript
复制
{ "_id" : "whole_blood", "mergedCategories" : { "A" : 20, "B" : 20 } }
{ "_id" : "platelet", "mergedCategories" : { "A" : 10, "B" : 10 } }

对于使用当前文档结构的解决方案,我将查看$mergeObjects中提供的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54200035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档