Aqui você pode conferir como um desenvolvedor de framework explicou como lidar com essa situação. MongoKitten encerrou o problema 27
aqui estão algumas citações de sua explicação caso o link se torne inválido.
"A biblioteca MongoKitten BSON sempre retorna uma enumeração (Valor) ao subscrever um documento."
"Um array BSON é realmente apenas um documento com chaves de 0 a x, então o caso enum para array tem um documento como seu valor associado. o protocolo de sequência.
A maneira mais fácil de iterar sobre a matriz é usando o acessador de conveniência do documento em Valor. Isso retorna o documento subjacente se Value for uma matriz ou documento, ou um documento vazio se for outra coisa. Você pode então iterar assim:"
for (key, val) in doc["vals"].document {
print("Value is \(val)")
}