-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
Affects Version/s: None
-
Component/s: Aggregation Framework
-
Query Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
It would be nice, if it's possible to access the parent within a $redact Aggregation.
Example:
{
id: ...,
i18n: {
en: {
foo: "bar",
_lang: "en"
},
jp: {
foo: "baz",
_lang: "jp"
}
}
}
Now I'd like to retrieve everything with i18n = jp, and keep a fallback to i18n = en. The code could look like this:
{ $redact: {
$cond: {
if: {
$or: [
{ $not : "$_lang" },
{ $eq: [ "$_lang", "jp" ] },
{ $and: [
{ $eq: [ "$_lang", "en" ] },
{ $not: "$$PARENT.jp" }
]}
]
},
then: "$$DESCEND",
else: "$$PRUNE"
}
}}
Thank you!