LightDB

lightdb.LightDB

The database to be implemented. Collections may be used without a LightDB instance, but with drastically diminished functionality. It is always ideal for collections to be associated with a database.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Type members

Classlikes

object stored

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
stored.type

Value members

Abstract methods

def directory: Option[Path]

The base directory for this database. If None, the database is expected to operate entirely in memory.

The base directory for this database. If None, the database is expected to operate entirely in memory.

Attributes

Default StoreManager to use for collections that do not specify a Store.

Default StoreManager to use for collections that do not specify a Store.

Attributes

List of upgrades that should be applied at the start of this database.

List of upgrades that should be applied at the start of this database.

Attributes

Concrete methods

def collection[Doc <: Document[LazyRef(...)], Model <: DocumentModel[Doc]](model: Model, name: Option[String], store: Option[Store[Doc, Model]], storeManager: Option[StoreManager], maxInsertBatch: Int, cacheQueries: Boolean): Collection[Doc, Model]

Create a new Collection and associate it with this database. It is preferable that all collections be created before the database is initialized, but collections that are added after init will automatically be initialized during this method call.

Create a new Collection and associate it with this database. It is preferable that all collections be created before the database is initialized, but collections that are added after init will automatically be initialized during this method call.

Note: If both are specified, store takes priority over storeManager.

Value parameters

cacheQueries

whether to cache queries in memory. This improves performance when running the same queries with different parameters fairly drastically, but consumes a lot of memory if many queries are executed in a single transaction.

maxInsertBatch

the maximum number of inserts to include in a batch. Defaults to 1 million.

model

the model to use for this collection

name

the collection's name (defaults to None meaning it will be generated based on the model name)

store

specify the store. If this is not set, the database's storeManager will be used to create one

storeManager

specify the StoreManager. If this is not set, the database's storeManager will be used.

Attributes

def collections: List[Collection[_, _]]

All collections registered with this database

All collections registered with this database

Attributes

def dispose(): Unit
def disposed: Boolean

True if this database has been disposed.

True if this database has been disposed.

Attributes

override protected def initialize(): Unit

Define initialization functionality here, but never call directly.

Define initialization functionality here, but never call directly.

Attributes

Definition Classes
def name: String

Identifiable name for this database. Defaults to using the class name.

Identifiable name for this database. Defaults to using the class name.

Attributes

def reIndex(): Int

Offers each collection the ability to re-index data if supported. Only stores that separate storage and indexing (like SplitStore) will do any work. Returns the number of stores that were re-indexed.

Offers each collection the ability to re-index data if supported. Only stores that separate storage and indexing (like SplitStore) will do any work. Returns the number of stores that were re-indexed.

Attributes

def truncate(): Unit
protected def truncateOnInit: Boolean

Automatically truncates all collections in the database during initialization if this is set to true. Defaults to false.

Automatically truncates all collections in the database during initialization if this is set to true. Defaults to false.

Attributes

Inherited methods

def apply[T](key: DBFeatureKey[T]): T

Attributes

Inherited from:
FeatureSupport
def featureMap: Map[DBFeatureKey[Any], Any]

Attributes

Inherited from:
FeatureSupport
def features: Iterable[Any]

Attributes

Inherited from:
FeatureSupport
def get[T](key: DBFeatureKey[T]): Option[T]

Attributes

Inherited from:
FeatureSupport
def getOrCreate[T](key: DBFeatureKey[T], create: => T): T

Attributes

Inherited from:
FeatureSupport
final def init(): Boolean

Calls initialize() exactly one time. Safe to call multiple times.

Calls initialize() exactly one time. Safe to call multiple times.

Attributes

Inherited from:
Initializable
def isInitialized: Boolean

Attributes

Inherited from:
Initializable
def put[T](key: DBFeatureKey[T], value: T): Unit

Attributes

Inherited from:
FeatureSupport

Concrete fields

lazy protected val appliedUpgrades: StoredValue[Set[String]]

Backing key/value store used for persistent internal settings, StoredValues, and general key/value storage.

Backing key/value store used for persistent internal settings, StoredValues, and general key/value storage.

Attributes

lazy protected val databaseInitialized: StoredValue[Boolean]