I can similarly only speak for Couchbase (I’m an employee). The Couchbase Mobile stack does fulfill all the requirements you’ve listed.
As @alexander says, Couchbase is a document database. We store JSON documents, and unstructured blobs as attachments. One slight error, in that there’s no hierarchical arrangement. (This is a bit different than, for example, Firebase, which essentially stores all your data as one large document.) Couchbase (like many NoSQL databases) is “schema-less”, which means you don’t have to follow any defined structure. You can have many documents with completely different forms. You can also make changes to the documents easily. For example, say you start with a user profile as a document, and it initially only includes the user’s name and user ID. Later, you can add an email address (or an array of addresses) without breaking anything, and without having to perform a database migration.
Regarding performance, there are several dimensions along which you can measure. I’d echo Alexander’s remark that you likely need to think through your use case, decide where you need performance/scale, and see what fits.
Couchbase similarly has a number of advanced features, too many to detail here, including querying, data routing, role-based access control, and more. Couchbase takes a different approach to conflict resolution, using something called multiversion concurrency control. In effect, this means you have sophisticated ability to understand the history of changes. Very roughly speaking, it works somewhat like Git.
Finally, I’ll mention that the Couchbase Mobile stack includes Couchbase Server. Couchbase Server is an enterprise-class highly-sophisticated operational database that has been on the market for many years.
Both products are moving targets, so realistically the only way to fully compare them will be to work through your use cases and how each platform supports your current and future needs.