An interactive shell interface to Nodenamo
- IMPORT
- INSERT
- GET
- LIST
- FIND
- UPDATE
- ON
- DELETE
- UNLOAD TABLE
- CREATE TABLE
- DELETE TABLE
- SHOW TABLES
- EXPLAIN
- DESCRIBE
IMPORT class FROM "path" IMPORT class AS alias FROM "path" IMPORT {class} FROM "path" IMPORT {class as alias} FROM "path"
where:
-
class
is the exported class decorated with nodenamo's@DBTable
-
alias
is an alias to be referenced to the imported class from subsequent statements. -
path
is the path to the file or a package containing theclass
to import.
IMPORT usersTable as users FROM "./usersTable.ts"
INSERT jsonObject INTO table WHERE expression
INSERT {id:2,title:"some thing",price:21,status:true} INTO books WHERE attribute_not_exists(id)
GET id FROM table STRONGLY CONSISTENT
GET 42 FROM users STRONGLY CONSISTENT
LIST projections FROM table USING indexName BY hashRange FILTER filterExpressions RESUME "lastEvaluatedKey" ORDER order LIMIT number STRONGLY CONSISTENT
where:
-
projections
is a list of properties to return. Use*
to return all properties. -
indexName
is the name of a GSI. -
hashRange
is a value to search against a hash property. It can be optionally followed by a comma and a value to search against a range property. -
order
isASC
orDESC
-
strongly consistent
can be used to request a consistent read.
LIST * FROM users BY "name" , "timestamp" FILTER email = "someone@example.com" ORDER asc LIMIT 10 STRONGLY CONSISTENT
FIND projections FROM table USING indexName WHERE keyConditions FILTER filterExpressions RESUME "lastEvaluatedKey" ORDER order LIMIT number STRONGLY CONSISTENT
where:
-
projections
is a list of properties to return. Use*
to return all properties. -
indexName
is the name of a GSI. -
order
isASC
orDESC
-
strongly consistent
can be used to request a consistent read.
FIND id, name, email FROM users USING users-gsi WHERE name = "some one" FILTER email = "someone@example.com" resume "token" ORDER desc LIMIT 2 STRONGLY CONSISTENT
UPDATE jsonObject FROM table WHERE conditionExpression WITH VERSION CHECK
where:
-
WITH VERSION CHECK
can be used to request a version check.
UPDATE {id:1,name:"new name"} FROM users WHERE attribute_not_exists(id) WITH VERSION CHECK
ON id FROM table SETsetExpression ADD addExpression DELETE deleteExpression REMOVE removeExpression conditionExpression WITH VERSION CHECK
where:
-
WITH VERSION CHECK
can be used to request a version check.
ON 42 FROM users SET lastViewed = "today" ADD count 1 WHERE published = true WITH VERSION CHECK
DELETE id FROM table WHERE conditionExpression
DELETE 42 FROM books WHERE deleted <> true
UNLOAD TABLE name
where:
-
name
is the imported class name or its alias.
UNLOAD TABLE users
CREATE TABLE FOR name WITH CAPACITY OF readCapacityNumber, writeCapacityNumber
where:
-
name
is the imported class name or its alias. -
readCapacityNumber
is the desired read capacity for the table. -
writeCapacityNumber
is the desired write capacity for the table.
CREATE TABLE FOR users WITH CAPACITY OF 123, 456
DELETE TABLE FOR name
where:
-
name
is the imported class name or its alias.
DELETE TABLE FOR users
SHOW TABLES
SHOW TABLES
Explain statement
where:
-
statement
is one of nodenamo query language stattements.
EXPLAIN INSERT {id:1,name:"some one"} INTO users
Describe name
where:
-
name
is the imported class name or its alias.
DESCRIBE users
{
type: 'describe',
name: 'users'
}