---
title: "Create"
description: "Learn how to create records in Aerospike using the Node.js client, including keys, bins, and write policies."
---

# Create

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

Jump to the [Code block](#code-block) for a combined complete example.

## Description

Demonstrates single record writes in an Aerospike database.

## Setup

### Boilerplate

The following examples leverage the following boilerplate to initialize the Aerospike module and connect to a server before creating a record.

```js
const Aerospike = await import("aerospike");

// Set hosts to your server's address and port

const config = { hosts: "YOUR_HOST_ADDRESS:YOUR_PORT" };

// Establishes a connection to the server

const client = await Aerospike.connect(config);
```

The record structure:

```asciidoc
Occurred: Integer

Reported: Integer

Posted: Integer

Report: Map

{

    shape: List,

    summary: String,

    city: String,

    state: String,

    duration: String

}

Location: GeoJSON
```

## Policies

Write policies define additional semantics for the write operation.

The following example creates a new write policy and sets the send key policy to `true`. This stores the user-defined key with the record, and returns it with read commands.

```js
// Create a new write policy

const writePolicy = new Aerospike.WritePolicy({

  key: Aerospike.policy.key.SEND,

});
```

## Key

The [key](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#keys-and-digests) is a tuple made up of: `([namespace](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#namespaces), [set](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#sets), user defined key)`.

The following example creates a key using the `sandbox` namespace, `ufodata` set, and user defined key `5001`.

```js
// Create the record key

let key = new Aerospike.Key('sandbox', 'ufodata', 5001);
```

## Create a record

A [record](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#records) is the basic unit of storage in the database. A record is composed of: `([key](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#keys-and-digests), [metadata](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#metadata), [bins](https://aerospike.com/docs/database/learn/architecture/data-storage/data-model#bins-and-data-types))`.

### Setup

Expand the block below to see the creation of the variables used in the [write](#write) example below.

View the data creation

```js
// Create the report map

const reportMap = {

  city: "Ann Arbor",

  state: "Michigan",

  shape: ["circle", "flash", "disc"],

  duration: "5 minutes",

  summary:

    "Large flying disc flashed in the sky above the student union. Craziest thing I've ever seen!",

};

// Format coordinates as a GeoJSON string

const geoLoc = new Aerospike.GeoJSON({

  type: "Point",

  coordinates: [42.2808, 83.743],

});

// Create the record bins

const bins = {

  occurred: 20220531,

  reported: 20220601,

  posted: 20220601,

  report: reportMap,

  location: geoLoc,

};

// Metadata may be passed; use null to send no metadata

const metadata = null;
```

### Write

The following example shows the creation of the bins and the writing of the record to the database.

```js
// Write the rcord to the server

await client.put(key, bins, metadata, writePolicy);
```

## Code block

Expand this section for a single code block to create a record

```js
const Aerospike = await import("aerospike");

// Set hosts to your server's address and port

const config = { hosts: "YOUR_HOST_ADDRESS:YOUR_PORT" };

// Establishes a connection to the server

const client = await Aerospike.connect(config);

// Create the record key

const key = new Aerospike.Key("sandbox", "ufodata", 5001);

const writePolicy = new Aerospike.WritePolicy({

  key: Aerospike.policy.key.SEND,

});

// Create the report map

const reportMap = {

  city: "Ann Arbor",

  state: "Michigan",

  shape: ["circle", "flash", "disc"],

  duration: "5 minutes",

  summary:

    "Large flying disc flashed in the sky above the student union. Craziest thing I've ever seen!",

};

// Format coordinates as a GeoJSON string

const geoLoc = new Aerospike.GeoJSON({

  type: "Point",

  coordinates: [42.2808, 83.743],

});

// Create the record bins

const bins = {

  occurred: 20220531,

  reported: 20220601,

  posted: 20220601,

  report: reportMap,

  location: geoLoc,

};

// Metadata may be passed; use null to send no metadata

const metadata = null;

// Write the rcord to the server

await client.put(key, bins, metadata, writePolicy);

// Close the connection to the server

await client.close();
```