0
MongoDB中3.4.5覺得下面簡單集合ooo
:
{ "id" : 1, "to" : [ { "id" : 2 }, { "id" : 4, "valid" : true } ] }
想$redact
to
如果valid
不真:
db.ooo.aggregate([{ "$redact": {
"$cond": {
"if": { "$ne": [ "$valid", true] },
"then": "$$KEEP",
"else": "$$PRUNE"
}
}}])
結果:
{ "id" : 1, "to" : [ { "id" : 2 } ] }
但是改變條件時,如果valid
是真:
db.ooo.aggregate([{ "$redact": {
"$cond": {
"if": { "$eq": [ "$valid", true] },
"then": "$$KEEP",
"else": "$$PRUNE"
}
}}])
結果是空的。
嗯。不,不是的。只有**時間它「走過雖然」是當你明確使用'$$ DESCEND',你沒有。因此,所有條件僅在「最高級別」**處進行評估**。似乎你誤讀了文檔。 [可能需要再次閱讀](https://docs.mongodb.com/manual/reference/operator/aggregation/redact/#descend) –