Search code examples
arangodbbi-temporal

Bitemporal with Arangodb


Are there any patterns or examples available for doing bitemporal modelling with ArangoDB? I am evaluating my options for choosing a database and ArangoDB seems to have the required features.

Lars


Solution

  • No, we currently don't know existing examples of how to do that in Arangodb.

    However, Reading over the code project article about Bitemporal Database Design You would do similar in ArangoDB - have two attributes with start and end-date.

    The problem of this aproach would however be, that you can't combine a range over two attributes in one skiplist index. One could probably work around this by specifying a range on the start attribute to be within a query range. A second filter would then sort out the documents that don't fulfill the end timestamp:

    FOR item IN testCollection 
       FILTER item.startTime < @startTimeMin AND item.startTime > @startTimeMax 
       FILTER item.endTime < @endTimeMax
      RETURN item
    

    With the bind values:

    {
      startTimeMin: '2016.01.15',
      startTimeMax: '2016.01.30',
      endTimeMax: '2016.01.25
     }
    

    However, if you could be a bit more detailed about your usecase, probably a more precise answer can be made.