Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
@zeit/cosmosdb-query
Advanced tools
A SQL parser and executer for Cosmos DB.
const { default: query } = require("@zeit/cosmosdb-query");
const items = [
{ id: "foo" },
{ id: "bar" }
];
const { result } = query("SELECT * FROM c WHERE c.id = @id")
.exec(items, {
parameters: [{ name: "@id", value: "foo" }]
});
console.log(result); // [ { id: "foo" } ]
sql
<string>const q = query("SELECT * FROM c")
items
<Object[]> | <null>options
<Object>
parameters
<Object[]> The parameters to pass to queryudf
<Object>maxItemCount
<number> The number of items to return at a timecontinuation
<Object> Continuation tokencompositeIndexes
<Object[][]> Optional composite index definitions for validating multiple ORDER BY
properties. By default, no definition is required and this value is used only for validation.result
<Object[]> Result documentscontinuation
<Object> Continuation token for subsequent callsExecutes a query for items
.
query(`SELECT VALUE udf.REGEX_MATCH("foobar", ".*bar")`).exec([], {
udf: {
REGEX_MATCH(input, pattern) {
return input.match(pattern) !== null
}
}
});
When the maxItemCount
and/or continuation
options are used,
all itesms have to contain the _rid
field with unique values.
const items = [
{ _rid: "a", value: 1 },
{ _rid: "b", value: 2 },
{ _rid: "c", value: 3 }
];
const q = query(`SELECT * FROM c`);
const { result, continuation } = q.exec(items, { maxItemCount: 2 });
console.log(result); // [ { _rid: "a", value: 1 }, { _rid: "b", value: 2 } ]
const { result: result2 } = q.exec(items, { maxItemCount: 2, continuation });
console.log(result2); // [ { _rid: "c", value: 3 } ]
keys
<string[]>Determines whether query may contain partition keys.
const q = query("SELECT * FROM c WHERE c.id = 1");
if (!q.containsPartitionKeys(["/key"])) {
throw new Error("query doesn't contain partition keys");
}
The AST object of query.
const { default: query, SyntaxError } = require("@zeit/cosmosdb-query");
try {
query("INVALID SELECT").exec(items);
} catch (err) {
if (err instanceof SyntaxError) {
console.error(err);
}
throw err;
}
All queries are supported except spatial functions ST_ISVALID
and ST_ISVALIDDETAILED
.
The spatial functions ST_INTERSECTS
, ST_WITHIN
, and ST_DISTANCE
are supported; use parameters to pass in GeoJSON as strings. Items in collections that are GeoJSON are expected to be of type string.
FAQs
A SQL parser and executer for Cosmos DB
The npm package @zeit/cosmosdb-query receives a total of 698,907 weekly downloads. As such, @zeit/cosmosdb-query popularity was classified as popular.
We found that @zeit/cosmosdb-query demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 82 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.