object Keywords extends Keywords
- Grouped
- Alphabetic
- By Inheritance
- Keywords
- Keywords
- AttrExpressions
- AggregateKeywords
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
type
?? = expression.AttrExpressions.?
- Definition Classes
- AttrExpressions
-
type
unify_stable = expression.AttrExpressions.unify
- Definition Classes
- AttrExpressions
-
trait
avg extends AnyRef
Average of attribute values.
Average of attribute values.
Applyavgkeyword to attribute to return average of attribute values of entities matching the molecule.Match.sKeywords.insert(1, 2, 4) Match.score(avg).get.head === 2.3333333333333335 // (1 + 2 + 4) / 3
- returns
Double
- Definition Classes
- AggregateKeywords
-
trait
count extends AnyRef
Count of attribute values.
Count of attribute values.
Applycountkeyword to attribute to return count of attribute values of entities matching the molecule.Person.firstName.lastName.age insert List( ("Ben", "Hayday", 42), ("Liz", "Taylor", 34), ("Liz", "Swifty", 34), ("Liz", "Mooray", 25) ) Person.firstName.age(count).get === List( ("Ben", 1), ("Liz", 3) // 34, 34, 25 )
- returns
Int
- Definition Classes
- AggregateKeywords
-
trait
countDistinct extends AnyRef
Count of distinct attribute values.
Count of distinct attribute values.
ApplycountDistinctkeyword to attribute to return count of distinct attribute values of entities matching the molecule.Person.firstName.lastName.age insert List( ("Ben", "Hayday", 42), ("Liz", "Taylor", 34), ("Liz", "Swifty", 34), ("Liz", "Mooray", 25) ) Person.firstName.age(countDistinct).get === List( ("Ben", 1), ("Liz", 2) // 34, 25 )
- returns
Int
- Definition Classes
- AggregateKeywords
-
trait
distinct extends AnyRef
Distinct attribute values.
Distinct attribute values.
Applydistinctkeyword to attribute to return Vector of distinct attribute values of entities matching the molecule.Person.firstName.lastName.age insert List( ("Ben", "Hayday", 42), ("Liz", "Taylor", 34), ("Liz", "Swifty", 34), ("Liz", "Mooray", 25) ) Person.firstName.age(distinct) insert List( ("Ben", 42), ("Liz", Vector(34, 25)) // only single 34 returned )
- returns
List[attribute-type]
- Definition Classes
- AggregateKeywords
-
trait
max extends AnyRef
Maximum attribute value(s).
Maximum attribute value(s).
Applymaxkeyword to attribute to return the maximum attribute value of entities matching the molecule.Person.age.insert(25, 34, 37, 42, 70) Person.age(max).get.head === 70
Apply
max(n)to return Vector of the n biggest values.Person.age(max(3)).get.head === Vector(37, 42, 70)
- Definition Classes
- AggregateKeywords
- Note
max/max(n)supports all value types (via comparators).max(n)Can at most return the number of values that match.
-
trait
maxs extends AnyRef
- Definition Classes
- AggregateKeywords
-
trait
median extends AnyRef
Median of attribute values.
Median of attribute values.
Applymediankeyword to attribute to return median of attribute values of entities matching the molecule.Match.sKeywords.insert(1, 2, 4) Match.score(median).get.head === 2
OBS: When it comes to an even number of values, Datomic has a special implementation of median that is different from the one described on the Wiki entry on the median function.
Datomic calculates the median of even number of values as the average of the two middle numbers rounded down to nearest whole numberMatch.sKeywords.insert(1, 2, 3, 4) Match.score(median).get.head === 2 // (2 + 3) / 2 = 2.5 rounded down to 2
With decimal numbers this can go wrong:
Match.sKeywords.insert(1.0, 2.5, 2.5, 3.0) Match.score(median).get.head === 2 // (2.5 + 2.5) / 2 = 2.5 rounded down to 2 (This is wrong and bug report has been filed)
- returns
Value of Attribute type
- Definition Classes
- AggregateKeywords
-
trait
min extends AnyRef
Minimum attribute value(s).
Minimum attribute value(s).
Applyminkeyword to attribute to return the minimum attribute value of entities matching the molecule.Person.age.insert(25, 34, 37, 42, 70) Person.age(min).get.head === 25
Apply
min(n)to return Vector of the n smallest values.Person.age(min(3)).get.head === Vector(25, 34, 37)
- Definition Classes
- AggregateKeywords
- Note
min/min(n)supports all value types (via comparators).min(n)Can at most return the number of values that match.
-
trait
mins extends AnyRef
- Definition Classes
- AggregateKeywords
-
trait
rand extends AnyRef
Random attribute value(s).
Random attribute value(s).
Applyrandomkeyword to attribute to return a single random attribute of entities matching the molecule.Person.age.insert(25, 34, 37, 42, 70) Person.age(random).get.head === 34 // or other..
Apply
random(n)to return Vector of n random values. Observe though that duplicate random values can re-occur.Person.age(random(3)).get.head === Vector(42, 25, 42) // or other..
To get distinct values only, use the
sample(n)keyword instead.- Definition Classes
- AggregateKeywords
-
trait
rands extends AnyRef
- Definition Classes
- AggregateKeywords
-
trait
sample extends AnyRef
Sample attribute value(s).
Sample attribute value(s).
Applysamplekeyword to attribute to return a single sample (random) attribute value of entities matching the molecule.Person.age.insert(25, 34, 37, 42, 70) Person.age(sample).get.head === 42 // or other..
Apply
sample(n)to return Vector of up to n distinct sample values.Person.age(sample(3)).get.head === Vector(70, 25, 37) // or other..
If values don't need to be distinct,
random(n)can be used also.- Definition Classes
- AggregateKeywords
- Note
Can at most return the number of values that match.
-
trait
samples extends AnyRef
- Definition Classes
- AggregateKeywords
-
trait
stddev extends AnyRef
Variance of attribute values.
Variance of attribute values.
Applystddevkeyword to attribute to return variance of attribute values of entities matching the molecule.Match.sKeywords.insert(1, 2, 4) Match.score(stddev).get.head === 1.247219128924647
- returns
Double
- Definition Classes
- AggregateKeywords
-
trait
sum extends AnyRef
Sum of attribute values.
Sum of attribute values.
Applysumkeyword to attribute to return sum of attribute values of entities matching the molecule.Match.sKeywords.insert(1, 2, 4) Match.score(sum).get.head === 7
- returns
Value of Attribute type
- Definition Classes
- AggregateKeywords
-
trait
variance extends AnyRef
Variance of attribute values.
Variance of attribute values.
Applyvariancekeyword to attribute to return variance of attribute values of entities matching the molecule.Match.sKeywords.insert(1, 2, 4) Match.score(variance).get.head === 1.5555555555555556
- returns
Double
- Definition Classes
- AggregateKeywords
-
trait
? extends AnyRef
Turn molecule into input molecule awaiting input.
Turn molecule into input molecule awaiting input.
Apply input marker?to attribute to turn molecule into an 'input molecule'.
At runtime the input molecule expects input for the attribute in place of the?marker.// Input molecule created at compile time. val ageOfPersons = m(Person.name_(?).age) // awaiting name of type String // At runtime, "Ben" is applied as input replacing the `?` placeholder and we can get the age. ageOfPersons("Ben").get === List(42)
- Definition Classes
- AttrExpressions
- Note
Data can only be retrieved from input molecules once they have been resolved with input.
Input molecule queries are cached and optimized by Datomic.
-
trait
AttrExpr[Ns, T] extends AnyRef
Expression methods common for all attributes.
Expression methods common for all attributes.
- Definition Classes
- AttrExpressions
-
trait
FulltextExpr[Ns, In] extends AnyRef
Expression methods of String attributes with fulltext search.
Expression methods of String attributes with fulltext search.
- Definition Classes
- AttrExpressions
-
trait
ManyAttrExpr[Ns, Add, OldNew, Rem] extends AnyRef
Value update methods for card-many attributes.
Value update methods for card-many attributes.
- Definition Classes
- AttrExpressions
-
trait
ManyExpr[Ns, In, T] extends ValueAttrExpr[Ns, In, T] with ManyAttrExpr[Ns, T, (T, T), T]
Expression methods of card-many attributes.
Expression methods of card-many attributes.
- Definition Classes
- AttrExpressions
-
trait
MapAttrExpr[Ns, In, T] extends ValueAttrExpr[Ns, In, T] with ManyAttrExpr[Ns, (String, T), (String, T), String]
Expression methods of map attributes.
Expression methods of map attributes.
- Definition Classes
- AttrExpressions
-
trait
OneExpr[Ns, In, T] extends ValueAttrExpr[Ns, In, T]
Expression methods of card-one attributes.
Expression methods of card-one attributes.
- Definition Classes
- AttrExpressions
-
trait
OptionalExpr[Ns, T] extends AnyRef
Expression methods of optional attributes.
Expression methods of optional attributes.
- Definition Classes
- AttrExpressions
-
trait
ValueAttrExpr[Ns, In, T] extends AttrExpr[Ns, T]
Expression methods of value attributes.
Expression methods of value attributes.
- Definition Classes
- AttrExpressions
-
trait
unify extends AnyRef
Unify attribute value in self-join.
Unify attribute value in self-join.
Applyunifymarker to attribute to unify its value with previous values of the same attribute in the molecule in a self-join.m(Person.age.name.Beverages * Beverage.name.rating) insert List( (23, "Joe", List(("Coffee", 3), ("Cola", 2), ("Pepsi", 3))), (25, "Ben", List(("Coffee", 2), ("Tea", 3))), (23, "Liz", List(("Coffee", 1), ("Tea", 3), ("Pepsi", 1)))) // What beverages do pairs of 23- AND 25-year-olds like in common? // Drink name is unified - Joe and Ben both drink coffee, etc.. Person.age_(23).name.Beverages.name._Ns.Self .age_(25).name.Beverages.name_(unify).get.sorted === List( ("Joe", "Coffee", "Ben"), ("Liz", "Coffee", "Ben"), ("Liz", "Tea", "Ben") )
- Definition Classes
- AttrExpressions
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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
object
avg extends avg
- Definition Classes
- Keywords
-
object
count extends count
- Definition Classes
- Keywords
-
object
countDistinct extends countDistinct
- Definition Classes
- Keywords
-
object
distinct extends distinct
- Definition Classes
- Keywords
-
object
max extends max
- Definition Classes
- Keywords
-
object
median extends median
- Definition Classes
- Keywords
-
object
min extends min
- Definition Classes
- Keywords
-
object
rand extends rand
- Definition Classes
- Keywords
-
object
sample extends sample
- Definition Classes
- Keywords
-
object
stddev extends stddev
- Definition Classes
- Keywords
-
object
sum extends sum
- Definition Classes
- Keywords
-
object
unify extends expression.AttrExpressions.unify
- Definition Classes
- Keywords
-
object
variance extends variance
- Definition Classes
- Keywords
Inherited from Keywords
Inherited from AttrExpressions
Inherited from AggregateKeywords
Inherited from AnyRef
Inherited from Any
Attribute markers
Markers applied to attributes that change the semantics of the attribute/molecule.
Aggregate keywords
Keywords applied to attributes that return aggregated value(s).
Number aggregation keywords
Keywords applied to number attributes that return aggregated value(s).

Documentation/API for the Molecule library - a meta DSL for the Datomic database.
scalamolecule.org | Github | Forum