Revisions and Other Features
When the revisions feature is enabled, a snapshot of a document that holds Counters will include in its metadata a @counters-snapshot
property,
that holds all the document's counter names and values (at the time of the revision creation).
This can be useful when historic records of the documents and their counter values are needed.
How do counter operations affect revision creation
Creation of a new counter and deletion of a counter modify the parent document (documents hold
their counter names in the metadata) and will trigger a revision creation.
Incrementing an existing counter does not modify the parent document and will not trigger a revision creation.
Example
List<MetadataAsDictionary> orderRevisionsMetadata = session.advanced()
.revisions()
.getMetadataFor("orders/1-A", 0, 10);
List<MetadataAsDictionary> orderCountersSnapshots = orderRevisionsMetadata
.stream()
.filter(x -> x.containsKey("@counters-snapshot"))
.map(x -> (MetadataAsDictionary) x.get("@counters-snapshot"))
.collect(Collectors.toList());