
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
@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 123,470 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
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.