Database
Overview of database service
CodeMash Database service provides many operations for database management like CRUD operations, schema builder, and data validation.
When you enable a database service in your CodeMash dashboard page we create a new MongoDb database for you. When that is done you are able to create collections using our provided tools in the dashboard. After you create a collection you can start adding records through the dashboard or calling to API endpoints.
Features included in database service:
  1. 1.
    Collections - just like any database collection.
  2. 2.
    Taxonomies - special kind of collections used mostly for basic select type data.
  3. 3.
    Imports - importing records to collections.
  4. 4.
    Exports - exporting records from collections.
  5. 5.
    Backups - dumping and restoring collections.

If you decide to use one of our provided SDK, the following code shows how to initialize database service.
.NET
Node
PHP
var projectId = Guid.Parse("{YOUR_PROJECT_ID}");
var apiKey = "{YOUR_SECRET_KEY}";
โ€‹
var client = new CodeMashClient(apiKey, projectId);
var service = new CodeMashRepository<Person>(client);
Here Person is a class which extends the interface IEntity. The example below shows a class extendingEntityclass which extendsIEntityinterface. The attributeCollectionNameis a helper for a client. It takes one parameter - the name of your collection in CodeMash.
[Collection("persons")]
public class Person : Entity
{
[Field("name")]
public string Name { get; set; }
}
Here UniqueName is an attribute that is used to set the unique name of a field (the name that is used inside a database). This name can be found in your collection, field details. If this attribute is not used, then your field will be serialized and deserialized as a lowercase property name.
import { db } from 'codemash';
$secretKey = '{YOUR_SECRET_KEY}';
$projectId = '{YOUR_PROJECT_ID}';
โ€‹
$client = new CodemashClient($secretKey, $projectId);
$codemashDb = new CodemashDb($client);
The following are examples of database SDK using different languages and frameworks.
.NET
Node
PHP
using System;
using CodeMash.Client;
using CodeMash.Repository;
using MongoDB.Driver;
โ€‹
namespace ConsoleApplication
{
[CollectionName("persons")]
public class Person : Entity
{
public string Name { get; set; }
}
โ€‹
class Program
{
static void Main(string[] args)
{
// 1. Get your Project ID and Secret Key
var projectId = Guid.Parse("{YOUR_PROJECT_ID}");
var apiKey = "{YOUR_SECRET_KEY}";
// 2. Create a general client for API calls
var client = new CodeMashClient(apiKey, projectId);
// 3. Create a service object
var dbService = new CodeMashRepository<Person>(client);
// 4. Call an API method
var filter = Builders<Person>.Filter.Eq(x => x.Name, "John");
var result = dbService.Find(filter);
}
}
}
export async function getHolidaysOfEmployee(userId) {
const filter = JSON.stringify({
application_user: userId,
status: 'Approved',
});
// gets first 100 records - all approved holidays sorted out by start date
const response =
await db.getRecords('holidays', 0, 100, { start: -1 }, filter);
return response;
}
use Codemash\CodemashClient;
use Codemash\CodemashDb;
โ€‹
class CodemashService
{
protected CodemashDb $codemashDb;
protected string $collectionName = '{YOUR_COLLECTION_NAME}';
โ€‹
public function __construct()
{
$secretKey = '{YOUR_SECRET_KEY}';
$projectId = '{YOUR_PROJECT_ID}';
โ€‹
$client = new CodemashClient($secretKey, $projectId);
$this->codemashDb = new CodemashDb($client);
}
โ€‹
public function getEmployees()
{
$responseData = $this->codemashDb->findMany([
'collectionName' => 'employees',
'filter' => [
'address' => 'New York',
],
]);
}
}

The following links explore the usage of database service:
Last modified 1yr ago
Copy link
On this page
Using SDK
Working with Database Service