trait GenericAVET extends AnyRef
AVET Index.
"The AVET index provides efficient access to particular combinations of attribute and value." (from Datomic documentation)
Access the AVET Index in Molecule by instantiating an AVET object with one or more arguments and then add generic attributes:
// Create AVET Index molecule with 1 entity id argument AVET(":Person/age").e.v.t.get === List( (e1, 42, t2), (e2, 37, t5) (e3, 14, t7), ) // Narrow search with multiple arguments AVET(":Person/age", 42).e.t.get === List( (e1, t2) ) AVET(":Person/age", 42, e1).e.v.get === List( (e1, t2) ) AVET(":Person/age", 42, e1, t2).e.v.get === List( (e1, t2) )
The AVET Index can be filtered by a range of values between from
(inclusive) and
until
(exclusive) for an attribute:
AVET.range(":Person/age", Some(14), Some(37)).v.e.t.get === List( (14, e4, t7) // 14 is included in value range // 37 not included in value range // 42 outside value range ) // If `from` is None, the range starts from the beginning AVET.range(":Person/age", None, Some(40)).v.e.t.get === List( (14, e3, t7), (37, e2, t5), ) // If `until` is None, the range goes to the end AVET.range(":Person/age", Some(20), None).v.e.t.get === List( (37, e2, t5), (42, e1, t2) )
Index attributes available:
e
- Entity id (Long)a
- Full attribute name like ":Person/name" (String)v
- Value of Datoms (Any)t
- Transaction pointer (Long/Int)tx
- Transaction entity id (Long)txInstant
- Transaction wall clock time (java.util.Date)op
- Operation status: assertion (true) / retraction (false)
- Source
- GenericAVET.scala
- Note
The Molecule Index API's don't allow returning the whole Index/the whole database. So omitting arguments constructing the Index object (like
AVET.a.v.e.t.get
) will throw an exception.
Please use Datomics API if you need to return the whole database Index:
conn.db.datoms(datomic.Database.AVET)
from
anduntil
cannot both be None since Molecule doesn't allow returning all datoms.
- Alphabetic
- By Inheritance
- GenericAVET
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object AVET extends AVET_0_0_L0[AVET_, Init] with FirstNS
AVET Index object to start AVET Index molecule.
Documentation/API for the Molecule library - a meta DSL for the Datomic database.
scalamolecule.org | Github | Forum