如何解决如何在mongodb聚合中按订单计数?
我有两个集合,分别为<script src="https://kit.fontawesome.com/d32f88a9a9.js" crossorigin="anonymous">
</script>
<div class="link-div" style="font-size: 32px;">
<a href="link-to-where-we're-going"><i class="fab fa-twitch fa-fw"></i></a>
<a href="link-to-where-we're-going" target="_blank"><i class="fab fa-facebook-square fa-fw"></i></a>
</div>
和listings
。
moods
示例:
listings
{
"_id": ObjectId("5349b4ddd2781d08c09890f3"),"name": "Hotel Radisson Blu","moods": [
ObjectId("507f1f77bcf86cd799439010"),ObjectId("507f1f77bcf86cd799439011")
]
}
示例:
moods
我需要这个记录。
{
"_id": ObjectId("507f1f77bcf86cd799439011"),"name": "Sports"
},{
"_id": ObjectId("507f1f77bcf86cd799439010"),"name": "Spanish Food"
},{
"_id": ObjectId("507f1f77bcf86cd799439009"),"name": "Action"
}
我需要这种类型的记录。我不知道聚合。
解决方法
您可以使用aggregate(),
db.moods.aggregate([
{
"$lookup": {
"from": "listings","as": "count",let: { id: "$_id" },pipeline: [
{
"$match": {
"$expr": { "$in": ["$$id","$moods"] }
}
}
]
}
},
- $addFields将
count
添加到我们从上述查找中获得的数组count
的{{3}}的基础上
{
$addFields: {
count: { $size: "$count" }
}
}
])
,
完成此工作:db.collection.aggrate()。count() 尝试组合功能,可能会起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。