Add calculated or derivative data with virtual fields in NocoDB.
This script demonstrates how to create and work with the following virtual fields in NocoDB: Barcode, Formula
For detailed descriptions of each field type and associated configuration options, refer to the NocoDB meta API documentation .
// NocoDB Script: Create Virtual & Formula Fields
const tableName = 'Virtual Fields Demo';
let table = base.getTable(tableName);
if (!table) {
table = await base.createTableAsync(tableName, []);
output.text(`✅ Created table: "${tableName}"`);
}
// helper
async function createField(name, config) {
if (!table.getField(name)) {
await table.createFieldAsync({ name, ...config });
output.text(`✅ Created: ${name}`);
}
}
// Base text field required for virtual examples
await createField('Name', { type: "SingleLineText" });
// Create Barcode linked to “Name”
const nameField = table.getField('Name');
await createField('Barcode', {
type: "Barcode",
options: { barcode_value_field_id: nameField.id }
});
// Formula combining text
await createField('Greeting', {
type: "Formula",
options: { formula: 'CONCAT("Hello, ", {Name}, "!")' }
});
output.table(table.fields.map(f => ({ 'Field Name': f.name, 'Type': f.type })));
output.text(`ℹ️ Total fields created: ${table.fields.length}`);
Related pages
- Table Operations : Demonstrates how to check for table existence, create a table, and list all tables in the base.
- Fields: Text-Based : Learn how to create and manage text-based fields in NocoDB.
- Fields: Numerical : Learn how to create numerical fields for storing quantities, percentages, currency, and more.
- Fields: Date & Time : Create fields to capture dates, times, and durations.
- Fields: Select : Create single select and multi select fields for categorizing data.
- Fields: System : Capture automatic audit information with system fields in NocoDB.
- Fields: User & Collaborator : Assign or reference users directly within records.
- Fields: Miscellaneous : Additional field types for attachments, checkboxes, ratings, and structured data.

