Code Monkey home page Code Monkey logo

cosmostoneo4j's Introduction

Welcome!

I'm a freelance developer sepcialising in Graph Databases, mainly Neo4j via .NET. I've been doing it for 20 years professionally, but waaay longer if we go back in time to the 'pre-getting-paid-for-it' days.

I also manage the DotNet4Neo4j organisation here, so anything .NET/MS/Neo4j feel free to get in touch!

Ways to get in touch

Charlotte Skardon LinkedInย 

No longer on Twitter - as the intolerance and lack of safety for minorities makes it unviable.

The standard you walk past is the standard you accept.

cosmostoneo4j's People

Contributors

cskardon avatar maxmumford avatar

Stargazers

 avatar

Watchers

 avatar

cosmostoneo4j's Issues

Mappings should be able to map properties

Including options to ignore...

{
 "Nodes" : [
   { 
      "Neo4j" : "Person",
      "Cosmos": "Person",
      "PropertiesMap" : [
           { 
               "Cosmos" : "Id",
               "Neo4j" : "Id",
               "Indexed": "true" //If not supplied = false
               "Ignored": "false" //If not supplied = false
            }
      ]
  }]
}

GUID Paginator should cope with more pages

At the moment the Guid Paginator can only cope with 36 pages (0-9, a-z) by only looking for the first character.
If the paginator can be extended to handle multiple characters - so:

0 -> 01
01 -> 02

2 characters would give up to 1,296 pages
3 characters up to 46,656 pages!

Use Labels for Relationship ingestion.

At the moment the Cypher generated is:

UNWIND $relationships AS rel
MATCH (inN {CosmosId: rel.inV})
MATCH (outN {CosmosId: rel.outV})
MERGE (inN)-[r:ACTED_IN]->(outN)
SET r += rel.properties

But this would be more efficient if the inN and outN nodes had their labels attached.

UNWIND $relationships AS rel
MATCH (inN:Person {CosmosId: rel.inV})
MATCH (outN:Movie {CosmosId: rel.outV})
MERGE (inN)-[r:ACTED_IN]->(outN)
SET r += rel.properties

Should use CosmosId on Relationships

You lose context as - in its current state - the MERGE will cause multiples of the same relationship to be merged into one - which is unintended.

Migration Directionality Inverted?

Following a couple of test migrations, it appears that the direction of edges is inverted in Neo4J, from the direction they had in CosmosDB.

For example, in our Cosmos DB, we have an edge/rel labelled 'Themes' that goes out from Client node in to Theme nodes in Comsos, but, one imported into Neo4J, the relation Themes direction goes from Theme to Client.

This seems consistent across the migration from what I can see.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.