db.FlaggedData.aggregate([
{
"$match": {
"_id": "d86d6b48-e949-4daa-8364-9ef008416ae8"
}
},
{
"$project": {
"users": {
"$slice": [
{
"$filter": {
"input": "$users",
"as": "users",
"cond": {
"$and": [
{ SOME FILTERS
}
]
}
}
},
0,
100
]
},
"count": {"$size": "$users"}
}
}
])
如何獲得過濾結果的大小?
正如我現在正在做的那樣,我得到的是陣列的大小,而不是過濾結果的大小。
謝謝。
uj5u.com熱心網友回復:
- 你需要把整個
$slice計算在內。
db.collection.aggregate([
{
"$match": {
"_id": "d86d6b48-e949-4daa-8364-9ef008416ae8"
}
},
{
"$project": {
"users": {
"$slice": [
{
"$filter": {
"input": "$users",
"as": "user",
"cond": {
"$and": [
{
$eq: [
"$$user.name",
"123"
]
}
]
}
}
},
0,
100
]
},
"count": {
"$size": {
"$slice": [
{
"$filter": {
"input": "$users",
"as": "user",
"cond": {
"$and": [
{
$eq: [
"$$user.name",
"123"
]
}
]
}
}
},
0,
100
]
}
}
}
}
])
mongoplayground
或者
- 使用兩個
project
db.collection.aggregate([
{
"$match": {
"_id": "d86d6b48-e949-4daa-8364-9ef008416ae8"
}
},
{
"$project": {
"users": {
"$slice": [
{
"$filter": {
"input": "$users",
"as": "user",
"cond": {
"$and": [
{
$eq: [
"$$user.name",
"123"
]
}
]
}
}
},
0,
100
]
}
}
},
{
"$project": {
users: {
"$size": "$users"
}
}
}
])
mongoplayground
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314287.html
