Skip to main content

createCollection

Creates a new collection. SingleStore Kai for MongoDB creates a collection implicitly on write. By default, the createCollection command creates a columnstore table.

Syntax

db.createCollection(<name>,
   {
     timeseries: {
        timeField: <string>
     },
     rowStore: <boolean>
     shardKey: <document>
     sortKey: <document>
     indexes: <array>
     columns: <array>
     preserveJSONKeyOrder: <boolean>
   }
)

Option

Type

Description

timeseries.timeField

String

Creates a top-level DATETIME(6) field and marks it with SERIES TIMESTAMP. Additionally, it creates a SORT KEY on this field, which accelerates time-related queries.

rowStore

Boolean

When enabled, creates a rowstore table.

shardKey

Document

Defines a shard key for the collection at creation in the index format. For example, {a:1}.

sortKey

Document

Defines a SORT KEY for the collection in the index format. For example, {a:1}.

indexes

Array

Each document in the array contains an index definition in the type specified in createIndex. For example, {name:"indexExample", key:{a:1}}.

columns

Array

Each document in the array represents a top-level column that is created in the table supporting this collection, with an id and a type. If the type is not specified, it is assumed to be JSON by default. For example: {id:"mycolumn",type:"BIGINT NOT NULL"}.

preserveJSONKeyOrder

Boolean

When enabled, key order is recorded by adding a field named $$ into each level of the documents. This key order is retrieved when the document is read through the API. By default, SingleStoreDB alphabetizes the JSON key order.

The following options are not supported in a createCollection statement:

  • capped

  • timeseries.metaField

  • timeseries.granularity

  • clusteredIndex

  • changeStreamPreAndPostImages

  • size

  • max

  • storageEngine

  • validator

  • validationLevel

  • validationAction

  • indexOptionDefaults

  • viewOn

  • pipeline

  • collation

  • writeConcern

Examples

The following examples show how to use the createCollection command:

  • Create a collection named exampleC with a field named Code:

    db.createCollection("exampleC", {
      columns: [{ id: "Code", type: "BIGINT NOT NULL" }],
    });
  • Create a collection supported by a rowstore table:

    db.createCollection("exCollection", { rowstore: true });