There is, in the Objective-C (iOS/Mac/tvOS) version, but it hasn’t gone through formal testing so it’s not part of the public API. Of course we can’t really hide anything because it’s right there in the source code…
<experimental>
CBLTimeSeries is a class that can collect small timestamped data values called “events” (as JSON objects) rapidly into a database. It packs them together into an array and stores that in a document. It will stuff up to 1000 events, or 100KB of JSON data, into a single document. This gives it much lower overhead than creating a document for every event. The downside is that it’s write-only: you can’t modify or delete individual events.
The class includes a convenience method to set up a push replication to a server; it can even purge the documents locally after they’ve been successfully pushed, so the local database won’t get bloated.
There’s a subclass
CBLRemoteLogging that does this for log messages. You just get the sharedInstance at startup, and tell it what logging keywords/channels you want it to capture. Then you can use the inherited replication setup method to push it to your server.
(You’ll need to copy the headers into your project and #import them, to be able to call these APIs.)
On the server side, the documents have a special ‘_type’ property to identify them, and another property that’s an array of all the events. (Details are in CBLTimeSeries.m.) It’s quite straightforward to write a map/reduce view on the server that emits every individual event, and then you can query that.
</experimental>
I’ll try to answer questions, but as I said, this isn’t an official API so it won’t get the same level of support. (I.e. if you’re a Couchbase customer, don't ask our support engineers for help on this.)
—Jens
PS: We’d like to make this an official feature (on all platforms) in 2.x, but we can’t guarantee that x=0…