Můžete použít cond
v $project
nebo $expr
v $match
fáze jako:
collectionName.aggregate([
{
$match: {
$expr: {
$cond: {
if: {
$gt: [
"$audiPrice",
null
]
},
then: {
$and: [
{
$gte: [
"$audiPrice",
price * 0.25
]
},
{
$lte: [
"$audiPrice",
price * 1.75
]
}
]
},
else: {
$and: [
{
$gte: [
"$price",
price * 0.25
]
},
{
$lte: [
"$price",
price * 1.75
]
}
]
}
}
}
}
}
])
Zde nejprve zkontrolujete, zda pole audiPrice není null, a poté proveďte shodu na tomto klíči s jiným klíčem ceny.