It sounds as if the requirement here is that the document must contain, within the document itself, an array that contains all previous versions of the document,
which would include the array.
While I can't think of any way to do this without reading the document, I think the key thing here is that you're looking at exponential growth there, which does get out of hand quite quickly. For example, consider a relatively small, 1K document; even with zero growth, at 14 revisions, you're at the document maximum size limit.
In cases where we've needed something like that, we've used a separate collection to store the versions, with documents containing two fields, a 'link' field, with the oid of the originating document, and a 'data' field, with the original contents, so as to handle the unbounded requirement without needing to worry about hitting the maximum document size limit. With an index on the link field, it's straightforward to use. Some of the drivers, such as mongoose, have a 'populate' function that makes getting the current version of the document from the link field easy.