Create
Jump to the 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.
const Aerospike = await import("aerospike");
// Set hosts to your server's address and portconst config = { hosts: "YOUR_HOST_ADDRESS:YOUR_PORT" };
// Establishes a connection to the serverconst client = await Aerospike.connect(config);
The record structure:
Occurred: IntegerReported: IntegerPosted: IntegerReport: 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.
// Create a new write policyconst writePolicy = new Aerospike.WritePolicy({ key: Aerospike.policy.key.SEND,});
Key
The key is a tuple made up of: (namespace, set, user defined key)
.
The following example creates a key using the sandbox
namespace, ufodata
set, and user defined key 5001
.
// Create the record keylet key = new Aerospike.Key('sandbox', 'ufodata', 5001);
Create a record
A record is the basic unit of storage in the database. A record is composed of: (key, metadata, bins)
.
Setup
Expand the block below to see the creation of the variables used in the write example below.
View the data creation
// Create the report mapconst 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 stringconst geoLoc = new Aerospike.GeoJSON({ type: "Point", coordinates: [42.2808, 83.743],});
// Create the record binsconst bins = { occurred: 20220531, reported: 20220601, posted: 20220601, report: reportMap, location: geoLoc,};
// Metadata may be passed; use null to send no metadataconst metadata = null;
Write
The following example shows the creation of the bins and the writing of the record to the database.
// Write the rcord to the serverawait client.put(key, bins, metadata, writePolicy);
Code block
Expand this section for a single code block to create a record
const Aerospike = await import("aerospike");
// Set hosts to your server's address and portconst config = { hosts: "YOUR_HOST_ADDRESS:YOUR_PORT" };
// Establishes a connection to the serverconst client = await Aerospike.connect(config);
// Create the record keyconst key = new Aerospike.Key("sandbox", "ufodata", 5001);
const writePolicy = new Aerospike.WritePolicy({ key: Aerospike.policy.key.SEND,});
// Create the report mapconst 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 stringconst geoLoc = new Aerospike.GeoJSON({ type: "Point", coordinates: [42.2808, 83.743],});
// Create the record binsconst bins = { occurred: 20220531, reported: 20220601, posted: 20220601, report: reportMap, location: geoLoc,};
// Metadata may be passed; use null to send no metadataconst metadata = null;
// Write the rcord to the serverawait client.put(key, bins, metadata, writePolicy);
// Close the connection to the serverawait client.close();