我想计算quantity
为1的文档数组中_id
为3的对象。
{
_id: 0,
items: [
{ item_id: 43, quantity: 2, price: 10 },
{ item_id: 2, quantity: 1, price: 240 }
]
}
{
_id: 1,
items: [
{ item_id: 23, quantity: 3, price: 110 },
{ item_id: 103, quantity: 3, price: 5 },
{ item_id: 38, quantity: 2, price: 300 }
]
}
{
_id: 2,
items: [
{ item_id: 4, quantity: 1, price: 23 }
]
}
我该怎么办?
答案 0 :(得分:2)
db.collection.aggregate([
{ '$match': { '_id': 1 }},
{ '$project': {
'counts': {
'$size': {
'$filter': {
'input': '$items',
'cond': { '$eq': ['$$this.quantity', 3] }
}
}
}
}}
])
答案 1 :(得分:0)
您可以使用mongodb的$ size聚合函数并获得所需的结果