Releases: JacobLinCool/neo4j-ogm
Releases · JacobLinCool/neo4j-ogm
neo4j-ogm@1.0.0-dev.2
Minor Changes
4b6f34f
Thanks @JacobLinCool! - Auto inference params and returns ofdb.run
typed-cypher@1.0.0-dev.1
Major Changes
-
6923f48
Thanks @JacobLinCool! - Make this package type onlySupport three main features:
Params
: Parse parameters from a Cypher queryVars
: Parse living variables in a Cypher queryReturns
: Parse return types from a Cypher query
typed-cypher@1.0.0-dev.0
Major Changes
b771723
Thanks @JacobLinCool! - Typed Cypher
neo4j-ogm@1.0.0-dev.1
Patch Changes
- Updated dependencies [
6923f48
]:- typed-cypher@1.0.0-dev.1
neo4j-ogm@1.0.0-dev.0
Major Changes
-
8267937
Thanks @JacobLinCool! - Define models:Use
zod
to define types.const driver = neo4j.driver(NEO4J_URI, neo4j.auth.basic(NEO4J_USER, NEO4J_PASSWORD)); const db = new DB(driver) .define("User", { name: z.string(), email: z.string(), FOLLOWS: MANY("User", { since: z.date() }), POSTS: MANY("Post", { at: z.date() }), LIKES: MANY("Post", { at: z.date() }), }) .define("Post", { title: z.string(), content: z.string(), INCLUDES: MANY("Media"), }) .define("Media", { url: z.string(), type: z.string(), size: z.bigint(), UPLOADED_BY: ONE("User"), });
Create nodes:
const jacob = await db.create("User", { name: "Jacob", email: "hi@jacoblin.cool", }); jacob.name; // "Jacob" jacob.email; // "hi@jacoblin.cool" const post = await db.create("Post", { title: "Hello World", content: "This is my first post!", }); post.title; // "Hello World" post.content; // "This is my first post!"
Create relationships:
const rel = await jacob.POSTS(post, { at: new Date() }); // rel.$from(); // jacob // rel.$to(); // post // rel.at; // Date
Get relationships:
const posts = await jacob.POSTS(); // (await posts[0].$to()).title; // "Hello World"
Minor Changes
-
8267937
Thanks @JacobLinCool! - Support custom$id
generator -
8267937
Thanks @JacobLinCool! - Find nodesFind all
User
:const users = await db.find("User");
Find
User
by property:const users = await db.find("User", { where: { name: "Jacob Lin" }, });
Sort the results:
const users = await db.find("User", { order: ["name", "ASC"], }); // sort by multiple fields const users = await db.find("User", { order: [ ["name", "DESC"], ["email", "ASC"], ], });
Limit the results:
const users = await db.find("User", { limit: 1, });
Patch Changes
- Updated dependencies [
b771723
]:- typed-cypher@1.0.0-dev.0