MongoDB 집계 내에서 필드를 계산하는 방법은 무엇입니까? [복제]
Nov 25 2020
다음 코드가 있습니다.
db.company_suppressions.aggregate([
{$match: {company_id: ObjectId('5edd3f71c130ea5378977d41')}}, {$group: {"_id": null, emails: {$push: "$email"}, phones: {$push: "$phone"} } },
{$project: {emails: true, phones: true, _id: false}}
])
이것은 정확히 내가 원하는 것을 반환합니다.
[
{
"emails": ["[email protected]", "[email protected]", "[email protected]", "[email protected]"],
"phones": ["3331234451", "3331234454", "7423742992", "1740742393", "4321221133"]
}
]
하지만 때로는 해당 필드의 개수 만 확인하면됩니다. 집계 파이프 라인을 조정하여 다음을 반환하도록하는 간단한 방법이 있습니까?
[
{
"emails": 4,
"phones": 5
}
]
답변
1 varman Nov 25 2020 at 10:33
$size
배열을 계산하는 데 사용할 수 있습니다 .
db.collection.aggregate([
{
$project: {
emails: {
$size: "$emails"
},
phones: {
$size: "$phones"
}
}
}
])
일하는 몽고 놀이터