Ism*_*ael 5 mongodb aggregation-framework
$project有没有什么办法可以只在一个阶段进行下面的操作呢?
db.getCollection('users').aggregate([
{
$project : {
firstEmail : { $arrayElemAt : ["$emails", 0] }
}
},
{
$project : {
domain : "$firstEmail.domain"
}
}
])
Run Code Online (Sandbox Code Playgroud)
您需要$let运算符:
db.getCollection('users').aggregate([
{
$project : {
domain : {
$let: {
vars: { firstEmail: { $arrayElemAt : ["$emails", 0] } },
in: "$$firstEmail.domain"
}
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |