## ------------------------------------------------
## Method `rlowdb$get_data`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$get_data()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$get_data_collection`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$get_data_collection("users")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$get_data_key`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$insert("users", list(id = 2, name = "Omar"))
db$get_data_key("users", "name")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$insert`
## ------------------------------------------------
db <- rlowdb$new("database.json", default_values = list(
"users" = list("active" = TRUE)
)
)
db$insert("users", list(id = 1, name = "Alice"))
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$find`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$find("users", "id", 1)
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$update`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$update("users", "id", 1, list(name = "Alice Updated"))
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$upsert`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 100, name = "Coconut"))
db$upsert("users", "id", 1, list(name = "Alice Updated"))
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$delete`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$delete("users", "id", 1)
db$get_data()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$query`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("posts", list(id = 1, title = "LowDB in R", views = 100))
db$insert("posts", list(id = 2, title = "Data Management", views = 250))
db$insert("posts", list(id = 3, title = "Advanced R", views = 300))
# Query posts with views > 200 AND id > 2
db$query("posts", "views > 200 & id > 2")
# Query posts with views > 100 OR id == 1
db$query("posts", "views > 100 | id == 1")
# Query all posts (no condition)
db$query("posts", "")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$filter`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("users", list(name = "Gamma", age = 36))
# Find users older than 30
db$filter("users", function(record) record$age > 30)
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$drop`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$drop("users")
db$get_data()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$drop_all`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("consumers", list(name = "Teta", age = 22))
db$drop_all()
db$get_data()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$clear`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("consumers", list(name = "Teta", age = 22))
db$clear("users")
db$get_data()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$count`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("users", list(name = "Gamma", age = 36))
db$count("users")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$list_collections`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("consumers", list(name = "Teta", age = 22))
db$list_collections()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$exists_collection`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("consumers", list(name = "Teta", age = 22))
db$exists_collection("users")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$exists_key`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("consumers", list(name = "Teta", age = 22))
db$exists_key("users", "name")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$exists_value`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$insert("consumers", list(name = "Teta", age = 22))
db$exists_value("users", "name", "Delta")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$transaction`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(name = "Delta", age = 25))
db$count("users")
db$transaction(function() {
db$insert("users", list(name = "Zlatan", age = 40))
db$insert("users", list(name = "Neymar", age = 28))
# if an error is raised, a rollback will happen and
# the records won't be inserted
})
db$count("users")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$search`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$insert("users", list(id = 2, name = "Bob"))
db$insert("users", list(id = 3, name = "alice"))
# Case-sensitive search
db$search("users", "name", "Alice", ignore.case = FALSE)
# Case-insensitive search
db$search("users", "name", "alice", ignore.case = TRUE)
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$bulk_insert`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$bulk_insert("users", list(
list(id = 1, name = "Alice", age = 25),
list(id = 2, name = "Bob", age = 32),
list(id = 3, name = "Charlie", age = 40)
))
db$count("users")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$rename_collection`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$bulk_insert("users", list(
list(id = 1, name = "Alice", age = 25),
list(id = 2, name = "Bob", age = 32),
list(id = 3, name = "Charlie", age = 40)
))
db$list_collections()
db$rename_collection("users", "customers")
db$list_collections()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$list_keys`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$bulk_insert("users", list(
list(id = 1, name = "Alice", age = 25),
list(id = 2, name = "Bob", age = 32),
list(id = 3, name = "Charlie")
))
db$list_keys("users")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$count_values`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$bulk_insert("users", list(
list(id = 1, name = "Alice", age = 25),
list(id = 2, name = "Bob", age = 32),
list(id = 3, name = NA),
list(id = 4, name = NA)
))
db$count_values("users", "name")
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$insert_default_values`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$bulk_insert("users", list(
list(name = "Alice", age = 30),
list(name = "Bob"),
list(name = "Charlie", age = 25, role = "admin")
))
# Add defaults without replacing existing values
db$insert_default_values("users", list(role = "guest", active = TRUE))
# Add defaults and replace existing values
db$insert_default_values("users", list(role = "guest", active = TRUE), replace_existing = TRUE)
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$clone_collection`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$clone_collection("users", "users_backup")
db$list_collections()
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$sample_records`
## ------------------------------------------------
db <- rlowdb$new("database.json")
db$insert("users", list(id = 1, name = "Alice"))
db$insert("users", list(id = 2, name = "Bob"))
db$insert("users", list(id = 3, name = "Charlie"))
# Sample 2 records without replacement
db$sample_records("users", n = 2)
# Sample with replacement
db$sample_records("users", n = 5, replace = TRUE)
# Reproducible sampling with seed
db$sample_records("users", n = 2, seed = 123)
unlink("database.json")
## ------------------------------------------------
## Method `rlowdb$set_schema`
## ------------------------------------------------
db <- rlowdb$new("database.json")
# Define schema before inserting
db$set_schema("users", list(
id = "numeric",
name = function(x) is.character(x) && nchar(x) > 0,
age = function(x) is.numeric(x) && x >= 0,
email = NULL # Optional
))
# This will fail validation:
try(db$insert("users", list(id = "1", name = "")))
Run the code above in your browser using DataLab