gpt4 book ai didi

javascript - mongodb 计算文档对

转载 作者:行者123 更新时间:2023-11-28 03:47:01 25 4
gpt4 key购买 nike

假设我有一个包含此类元素的 MongoDB 集合:

{ 
"_id" : "id1",
"from" : "Tom",
"to" : "Bill"
},
{
"_id" : "id2",
"from" : "Jack",
"to" : "Tom"
},
{
"_id" : "id3",
"from" : "Jack",
"to" : "Tom"
},
{
"_id" : "id4",
"user" : "Tom",
"to" : "Jack"
},
{
"_id" : "id4",
"user" : "Tom",
"to" : "Bill"
},
{
"_id" : "id5",
"user" : "Bill",
"to" : "Jack"
}

把它想象成一封电子邮件。如何聚合此类集合以找出哪一对沟通最多?问题是我们不仅应该计算从 A 到 B 的邮件,还应该计算从 B 到 A 的邮件。

感谢一百万!

最佳答案

我假设您始终有 fromto 字段。然后,您可以将数据投影到参与者的有序数组中,然后按这样的数组进行$group:

db.mails.aggregate([
{
$project: {
_id: 1,
participants: {
$cond: {
if: { $gte: [ "$from", "$to" ] },
then: [ "$to", "$from" ],
else: [ "$from", "$to" ] }
}
}
},
{
$group: {
_id: "$participants",
count: { $sum: 1 }
}
},
{
$sort: { "count" : -1 }
}
])

关于javascript - mongodb 计算文档对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48367038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com