ad

mongodb +合并词典-英雄云拓展知识分享

匿名投稿 307 2024-01-21

我有一个数据库,该数据库被构造为

{"id":5,

"type":{"hello":1,"sad":2,"luck":1}})

mongodb +合并词典-英雄云拓展知识分享

现在我进行搜索

 db.collection.distinct("type")

[

{

"hello" : 1,

"sad" : 2

},

{

"hello" : 1,

"sad" : 2,

"luck" : 1

}

]

现在,我想将每一个键的所有值总结为以下结果:

 { "hello" : 2, "sad" : 4, "luck" : 1 }}

是不是有一种方法可以实现这一目标,谢谢。

看答案

Mongo 3.4.4版本

您可使用 $objectToArray 它创建了键值对数组。

db.collection.aggregate({

"$project": {

"type": {

"$objectToArray": "$type"

}

}

}, {

"$unwind": "$type"

}, {

"$group": {

"_id": "$type.k",

"count": {

"$sum": "$type.v"

}

}

})

较旧的版本

您可使用 mapreduce

var map = function() {

var type = this.type;

Object.keys(type).forEach( function(key) { emit( key, type[key] ); } );

};

var reduce = function( key, values ) {

return values.length;

};

db.collection.mapReduce( map, reduce, { out: { "inline" : 1} } )['results']


🚀🌟 点击注册 免费试用超级应用平台-英雄云企业级hpapaas 🌟🚀 😃👉🌐

免责声明:

本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。

标签:mongodb 聚合框架
上一篇:excel银行卡号格式怎样设置? EXCEL如何设置银行卡号4段式?-英雄云拓展知识分享
下一篇:ASP.NET MVC-一次从2个模型列出的ViewModel-英雄云拓展知识分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×