CodeMash
  • ๐Ÿš€Backend as a service
  • ๐Ÿฆ„Roadmap
  • ๐Ÿ•Release Notes
  • Installation
    • Managed Service
    • ๐Ÿ—๏ธAWS-CDK
    • ๐Ÿ—๏ธAzure
    • ๐Ÿ—๏ธDocker
    • ๐Ÿ—๏ธGC
    • ๐Ÿ—๏ธTerraform
  • dashboard
    • CodeMash Cloud
    • Project
    • Membership
      • Users
      • Roles
      • Policies
      • Triggers
      • Integrations
        • Apple
        • Azure
        • Facebook
        • Google
        • Twitter
      • Settings
    • Database
      • Collections
        • Schema
          • From Template
          • Structure
        • Tabs
        • Triggers
        • Indexes
        • Shared Forms
      • Taxonomies
        • Terms
        • Schema
        • Settings
      • Aggregation
      • Imports
      • Exports
      • Backups
    • Files
      • Integrations
        • CodeMash
        • S3 Bucket
    • Notifications
      • Push
        • Push Templates
        • Push Templates API
        • Push Notifications
        • Push Notifications API
        • Devices
        • Devices API
        • Integrations
          • Firebase
          • One Signal
          • Expo
      • Email
        • Email Templates
        • Emails
        • Integrations
          • AWS SES
          • Twilio Sendgrid
          • Mailgun
      • ๐Ÿ—๏ธServer events
      • ๐Ÿ—๏ธSms
    • Payments
      • Integrations
        • Apple Pay
        • Google Pay
        • Stripe
        • Kevin.
        • Paysera
        • Decta
    • Scheduler
    • Logs & Monitoring
    • Code
      • Functions
        • Function Inputs
        • Function Templates
          • Node.js
          • Python
          • Ruby
          • Java
          • Go
          • .NET Core
      • CodeMash Functions
        • Google Functions
          • Google Calendar
          • Google Gmail
        • Microsoft Functions
          • Microsoft 365 Users
          • Microsoft 365 Calendar
        • Collection Find
        • Collection Update
        • Users Find
        • Image Resize
        • Html To Pdf
        • Word Document
        • Barcode
        • QR Code
        • Send Email
        • Send Notification
        • Email Reminder
        • Notification Reminder
      • Integrations
        • AWS Lambda
        • Google Cloud Functions
        • Azure Functions
  • Other Topics
    • Apple
      • Developer Portal
      • Bundle Identifier
      • Team ID
      • Service ID
      • Key ID
    • Triggers
    • Tokens Binding
      • Project Tokens
      • Initiator Tokens
      • Receiver Tokens
      • Request Tokens
      • Operation based tokens
      • Template Functions
    • Search parameters
      • Paging
      • Filter
      • Sort
      • Projection
    • data-models
    • Errors
  • SDK
    • Node.js
    • TypeScript
    • .NET
    • ๐Ÿ—๏ธGo Lang
    • ๐Ÿ—๏ธFlutter
    • ๐Ÿ—๏ธSwift
    • ๐Ÿ—๏ธKotlin
  • CLI
    • ๐Ÿ—๏ธCodeMash CLI
  • API
    • Get Started
    • Prerequisites
    • How to test?
    • Cors
    • Project
    • Membership
      • Authentication
      • Users
    • Database
      • Collections
        • Aggregate
        • Change Responsibility
        • Count
        • Delete
        • Delete Many
        • Distinct
        • Find
        • Find One
        • Insert
        • Insert Many
        • References
        • Replace
        • Update
        • Update Many
      • Taxonomies
        • Find
    • Files
    • Code
    • Notifications
      • Push
      • Emails
      • Server Events
      • ๐Ÿ—๏ธSms
    • Payments
    • Scheduler
    • Logs & Monitoring
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. API
  2. Database
  3. Collections

Find

List records from specified collection

PreviousDistinctNextFind One

Last updated 2 years ago

Was this helpful?

Finds database records. You can pass projection to return record fields you care about. Also, you can include referenced collections to have all that information in one place.

  1. Ensure that your Project Id and API Key are correct

  2. Ensure that your Service user holds enough permissions to query database collection.

  3. If you use more than one database, please provide ClusterId; otherwise, the default database will be used.

GET - Gets all records from Collection "Companies."

curl --location --request GET 'https://api.codemash.io/v2/db/companies/find' \
--header 'X-CM-ProjectId: 7254937f-ad77-4d00-9b35-c2af7841d21b' \
--header 'Authorization: Bearer ebis52*******yUfrX'

POST - Gets all records from Collection "Companies" where company code is equal to "123"

curl --location --request POST 'https://api.codemash.io/v2/db/companies/find' \
--header 'X-CM-ProjectId: 7254937f-ad77-4d00-9b35-c2af7841d21b' \
--header 'Authorization: Bearer ebis52*******yUfrX' \
--header 'Content-Type: application/json' \
--data-raw '{ "filter": "{ code: 123 }"}'
import { db } from 'codemash';

// gets all first 100 employees 
export async function getEmployees() {
    return await db.getRecords('emplpyees', 0, 100);
}

// gets all first 100 active employees
// get only first name and last name - projection
// sort out by created on date in DESC order. 
export async function getActiveEmployees() {    

    const filter = JSON.stringify({ 'is_active': true });
    
    const response = 
        await db.getRecords('employees', 0, 100,
        { first_name: 1, last_name: 1 }, 
        filter, 
        { created_on: -1 });  
              
    return response;
}

var client = new CodeMashClient(apiKey, projectId);
var service = new CodeMashRepository<Person>(client);

var persons = await service.FindAsync(
    x => true,
    new DatabaseFindOptions()
);

Check the docs about entities on how the response records are deserialized into your class objects.

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 find()
    {
        $responseData = $this->codemashDb->findMany([
        	'collectionName' => 'employees',
        	'filter' => [
        		'address' => 'New York',
        	],
        ]);
    }
}

Check the docs on how to form , , , . Check the docs on how to use .

projections
filters
sorting
paging
references
  • GET[Find] - List records from specified collection
  • POST[Find] - List records from specified collection

[Find] - List records from specified collection

get

Finds database records. You can pass projection to return record fields you care about. Also, you can include referenced collections to have all that information in one place. https://docs.codemash.io/api/database/collections/find

Authorizations
Path parameters
CollectionNamestringRequired

Collection name - unique, lowercased, collection name without whitespace. E.g., if your collection title you have entered in the CodeMash dashboard is "Business Trips" then collection name would be "business-trips".

versionstringRequired

The CodeMash API version used to fetch data from the API. If not specified, the last version will be used. E.g.: v2

Query parameters
IncludeSchemabooleanOptional

Use the IncludeSchema property when you want to have schema definition in the API response as well. This is useful when you have dynamic data rendering and want to have context over your data structure and how it should be displayed. By default schema is excluded.

IncludeUserNamesbooleanOptional

If your collection record has relationship with the Users collection from the Membership module, you can set IncludeUserNames property to "true" to get full user name and id information altogether without making any extra roundtrip to the server.

IncludeRoleNamesbooleanOptional

If your collection record has relationship with the system Roles from the Membership module, you can set IncludeRoleNames property to "true" to get full role name and id information altogether without making any extra roundtrip to the server.

IncludeCollectionNamesbooleanOptional

If your collection record has relationship with other collections from the Database module, you can set IncludeCollectionNames property to "true" to get display name and id information altogether without making any extra roundtrip to the server.

IncludeTermNamesbooleanOptional

If your collection record has relationship with the taxonomy terms from the Database module, you can set IncludeTermNames property to "true" to get term name and id information altogether without making any extra roundtrip to the server.

ExcludeCulturebooleanOptional

Set ExcludeCulture property to "true" when you want to return all the data translations from translatable fields. This is useful when you want to take care about translations in the front-end side. E.g.: when you want to enter product description in your project supported languages.

AddReferencesFirstbooleanOptional

If true, then references are injected before your list queries are applied

PageSizeinteger ยท int32Optional

Amount of records to return

PageNumberinteger ยท int32Optional

Page of records to return

SortstringOptional

A query that specifies how to sort filtered records

Header parameters
AcceptanyRequired

Accept Header

X-CM-ClusterstringOptional

API key of your cluster. Can be passed in a header as X-CM-Cluster.

X-CM-ProjectIdstringRequired

ID of your project. Can be passed in a header as X-CM-ProjectId.

CultureCodestringOptional

Specify culture code when your response from the API should be localised. E.g.: en

Responses
200
Success
application/json
get
GET //{version}/db/{CollectionName}/find HTTP/1.1
Host: api.codemash.io
Authorization: YOUR_API_KEY
X-CM-ProjectId: text
Accept: */*
200

Success

{
  "total_count": 1,
  "schema": {
    "collection_name_as_title": "text",
    "collection_name": "text",
    "ui_schema": "text",
    "json_schema": "text",
    "translatable_fields": [
      "text"
    ],
    "database_id": "text",
    "schema_id": "text"
  },
  "response_status": {
    "error_code": "text",
    "message": "text",
    "stack_trace": "text",
    "errors": [
      {
        "error_code": "text",
        "field_name": "text",
        "message": "text",
        "meta": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    ],
    "meta": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  },
  "result": "text"
}

[Find] - List records from specified collection

post

Finds database records. You can pass projection to return record fields you care about. Also, you can include referenced collections to have all that information in one place. https://docs.codemash.io/api/database/collections/find

Authorizations
Path parameters
CollectionNamestringRequired

Collection name - unique, lowercased, collection name without whitespace. E.g., if your collection title you have entered in the CodeMash dashboard is "Business Trips" then collection name would be "business-trips".

versionstringRequired

The CodeMash API version used to fetch data from the API. If not specified, the last version will be used. E.g.: v2

Query parameters
IncludeTermNamesbooleanOptional

If your collection record has relationship with the taxonomy terms from the Database module, you can set IncludeTermNames property to "true" to get term name and id information altogether without making any extra roundtrip to the server.

AddReferencesFirstbooleanOptional

If true, then references are injected before your list queries are applied

Header parameters
AcceptanyRequired

Accept Header

X-CM-ClusterstringOptional

API key of your cluster. Can be passed in a header as X-CM-Cluster.

X-CM-ProjectIdstringRequired

ID of your project. Can be passed in a header as X-CM-ProjectId.

CultureCodestringOptional

Specify culture code when your response from the API should be localised. E.g.: en

Body
anyOptional
Responses
200
Success
application/json
post
POST //{version}/db/{CollectionName}/find HTTP/1.1
Host: api.codemash.io
Authorization: YOUR_API_KEY
X-CM-ProjectId: text
Content-Type: application/json
Accept: */*
200

Success

{
  "total_count": 1,
  "schema": {
    "collection_name_as_title": "text",
    "collection_name": "text",
    "ui_schema": "text",
    "json_schema": "text",
    "translatable_fields": [
      "text"
    ],
    "database_id": "text",
    "schema_id": "text"
  },
  "response_status": {
    "error_code": "text",
    "message": "text",
    "stack_trace": "text",
    "errors": [
      {
        "error_code": "text",
        "field_name": "text",
        "message": "text",
        "meta": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    ],
    "meta": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  },
  "result": "text"
}