Odpręż się tylko o jeden poziom, więc musisz zadzwonić tyle razy, ile masz poziomów, jeśli zrobisz to w ten sposób
[
{ "$project" : { "text" : "$periods.tables.rows.text" , "_id" : "$_id"}},
{ "$unwind" : "$text"},
{ "$unwind" : "$text"},
{ "$unwind" : "$text"},
{ "$group" : { "_id" : "$_id" , "texts" : { "$addToSet" : "$text"}}},
{ "$project" : { "_id" : 0 , "texts" : 1}}
]
Będzie działać zgodnie z oczekiwaniami.