我有一個巨大的陣列,我只需要獲取乘以 12 的陣列索引。我想使用$filter,但我在cond引數中掙扎。
我使用聚合是因為我需要做更多的事情,但我被困在這個過濾器部分。
data : [3,4,5,6,...,etc, <more 5000 items> ]
詢問:
db.test.aggregate([{$project:{filtered_values: {$filter:{input: '$data', as:data ,cond: { ??? some witchcraft ???} }}}}])
預期結果:
[data[0],data[12],data[24],data[36],data[i%12 ===0]]
我怎樣才能用聚合達到這個結果?或者如果是$filter最好的解決方案?
uj5u.com熱心網友回復:
嘗試這個:
db.collection.aggregate([
{
$set: {
data: {
$map: {
input: { $range: [0, { $size: "$data" }, 12] },
as: "i",
in: { $arrayElemAt: ["$data", "$$i"] }
}
}
}
}
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359657.html
