database - 如何在一个产品中获取多个相关产品
问题描述
我需要写一个查询,来计算相关产品的数量。我已经尝试过了,但没有奏效:
db.collection.aggregate([
{
$match: {
title: "bike"
}
},
{
$group: {
_id: {
related: "$related",
inside: "$inside"
},
related: {
$sum: "$inside"
}
}
}
])
我需要得到里面的项目数量,表格看起来像这样
{
"title" : "bike",
"related" : {
"inside" : [
"item1",
"item2",
"item3",
]
}
}
任何想法如何在“自行车”->“内部”中获得这么多物品?
解决方案
基本上,您要查找的运算符是$size。您可以使用$addFields将该值添加到每个文档:
db.collection.aggregate([
{
$match: { title: "Watch" }
},
{
$project: {
size: { $size: "$related.viewed" }
}
}
])
推荐阅读
- assembly - 组装中的堆栈以及如何有效地使用它们
- maple - 如何将枫树表达式转换为python代码?
- c# - ASP.NET MVC 5 - 仅使用身份的单元测试服务
- google-analytics - 如何从 Google Analytics API 获取数据到特定时间
- java - 如何通过apache poi在excel中设置字体颜色rgb
- javascript - 暗模式 css 保存选择
- python - 如何在后台运行 python 脚本 django
- javascript - 如何使用 jQuery animate 平滑页面滚动并同时更新 URL?
- python - Python RE“子”方法。Pyschools T12 Q13
- flutter - Flutter 在热重启时崩溃并在热重载时抛出错误 105