@neo4j/cypher-builder
Advanced tools
Changelog
1.10.2
d154995
Thanks @MacondoExpress! - Fix a bug where the delete clause where not being attached to Cypher.Call
Changelog
1.10.1
#271 5834c61
Thanks @angrykoala! - Add labelOperator
option on build to change the default label AND
operator:
const node = new Cypher.Node({ labels: ["Movie", "Film"] });
const query = new Cypher.Match(node);
const queryResult = new TestClause(query).build(
undefined,
{},
{
labelOperator: "&",
}
);
Will return:
MATCH (this:Movie&Film)
Changelog
1.10.0
#269 6d9d3e2
Thanks @angrykoala! - Add chained clauses to Procedures after YIELD:
.unwind
.match
.optionalMatch
.delete
.detachDelete
.set
.merge
.create
.remove
Changelog
1.9.0
#263 4c4f49b
Thanks @angrykoala! - Support for NODETACH:
new Cypher.Match(n).noDetachDelete(n);
MATCH(n)
NODETACH DELETE n
#261 f018078
Thanks @angrykoala! - Add support for nullIf function Cypher.nullIf(expr1, expr2)
Changelog
1.8.0
#253 da0b3ab
Thanks @angrykoala! - Add support for type filtering on relationships
new Cypher.Match(new Cypher.Pattern().related(new Cypher.Relationship()).to()).where(
relationship.hasType("ACTED_IN")
);
MATCH(this0)-[this1]->(this2)
WHERE this1:ACTED_IN
#251 80e1bca
Thanks @angrykoala! - Add support for label expressions on hasLabel
:
const query = new Cypher.Match(node).where(node.hasLabel(Cypher.labelExpr.or("Movie", "Film")));
MATCH (this0:Movie)
WHERE this0:(Movie|Film)
#256 602c237
Thanks @angrykoala! - Add support for ON MATCH SET
after MERGE
:
const node = new Cypher.Node({
labels: ["MyLabel"],
});
const countProp = node.property("count");
const query = new Cypher.Merge(node)
.onCreateSet([countProp, new Cypher.Literal(1)])
.onMatchSet([countProp, Cypher.plus(countProp, new Cypher.Literal(1))]);
MERGE (this0:MyLabel)
ON MATCH SET
this0.count = (this0.count + 1)
ON CREATE SET
this0.count = 1
Changelog
1.7.4
#245 a63337d
Thanks @angrykoala! - Deprecate Merge.onCreate
in favor of Merge.onCreateSet
to better reflect the resulting Cypher ON CREATE SET
#244 347ae01
Thanks @angrykoala! - Fix clauses order when using Merge.onCreate
along with .set
For example:
const query = new Cypher.Merge(node)
.onCreate([node.property("age"), new Cypher.Param(23)])
.set([node.property("age"), new Cypher.Param(10)]);
MERGE (this0:MyLabel)
ON CREATE SET
this0.age = $param1
SET
this0.age = $param0
Changelog
1.7.3
#236 34552dc
Thanks @angrykoala! - Support for chained .yield
:
const customProcedure = new Cypher.Procedure("customProcedure", []).yield("result1").yield(["result2", "aliased"]);
is equivalent to:
const customProcedure = new Cypher.Procedure("customProcedure", []).yield("result1", ["result2", "aliased"]);
and results in the Cypher:
CALL customProcedure() YIELD result1, result2 AS aliased
Changelog
1.7.2
#230 f37cc99
Thanks @angrykoala! - Support for passing undefined
to .where
:
const n = new Cypher.Node();
new Cypher.Match(n).where(undefined).return(n);
This will generate the following Cypher:
MATCH(n)
RETURN n
Note that the WHERE
clause is omitted if the predicate is undefined
Changelog
1.7.1
84b1534
Thanks @angrykoala! - Support for new Call().innerWith("*")
to generate WITH *
inside a CALL
subqueryChangelog
1.7.0
#218 81dc823
Thanks @angrykoala! - Add support for CDC procedures:
cdc.current
cdc.earliest
cdc.query
#224 c872abd
Thanks @angrykoala! - Implement functions from Cypher 5.13:
valueType
char_length
character_length
cae1828
Thanks @angrykoala! - Removes duplication between RawCypher (deprecated) and Raw