- 62
- 0
MongoDB中有一个collection--foo 其中有这么一个字段--品牌 是一个数组 可以保存多个品牌 如下所示
"brands" : [
"西门子",
"ABB",
"GE"
],
现在想做这样的查询统计 不同品牌共同出现的情况 如我想知道提及西门子的时候同时还提及到了哪些其他品牌 共同出现的频率是怎样的
西门子 ABB 10 # 西门子 和 ABB 共同出现了10次
西门子 GE 20 # 西门子 和 GE 共同出现了20次
我现在想到的办法是 如下所示
原始记录:
"brands" : [
"西门子",
"ABB",
"GE"
],
新增一个字段-- `brand_and_mentioned_brands`-- 保存互相提及的情况
[
{
main_brand: 西门子 #主品牌
mentioned_brands: [ABB,GE] # 提及品牌
},
{
main_brand: ABB
mentioned_brands: [西门子,GE]
},
{
main_brand: GE
mentioned_brands: [西门子,ABB]
}
]
这样的话 可以通过下面的查询语句来进行查询
{$unwind:"$brand_and_mentioned_brands"},
{$unwind:"$brand_and_mentioned_brands.mentioned_brands"},
{$group:{"_id":{main_brand:"$brand_and_mentioned_brands.main_brand",mentioned_brand:"$brand_and_mentioned_brands.mentioned_brands"},count:{$sum:1}}}
不知除此之外 有没其他更好的方式?
1
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
