Hello,

I have been looking into Graph Databases (and some other NoSQL databases) 
recently, and i found a lot of interesting developments going on, including 
ArangoDB with its Foxx applications (and Javascript API very similar to 
MongoDB) and Neo4J, seemingly the most popular GraphDB currently.

I had issues with all of these, leading me to the conclusion that they are 
not mature enough.

Then I stumbled upon OrientDB, and it seems to have very good performance, 
and a high stability. So I concluded that this was the best option to 
explore further.

First thing I do when trying out, is try to get some exising data 
(originating from a relational database) into the system, and trying to add 
some edges to replace the foreign keys.

While Neo4J wasn't stable and fast enough, I liked the power of Cypher 
enormously. I could create edges based on the current foreign key column 
easily (if I didn't have to many nodes, in that case it wouldn't work :) ).

So far, for something so basic, In OrientDB I have only found the CREATE 
LINK command, but the alternative CREATE EDGE seems way less powerful. How 
could I create edges for a whole set of nodes based on some restrictions, 
by using the OrientSQL language? 'Joining' doesn't seem possible.

In Cypher, you can return values from multiple documents together, which 
feels very natural to me, for example match (a)-[:likes]->(b) return a. b
( you could even do match (a)-[:adores]->(b) with b as adoree, collect(a) 
as adorers return { "adoree": adoree, "adorers": adorers } )

The only thing I have found in OrientSQL is a way to return different types 
of rows in one query, but in different "records", as in:

traverse acted_in from ( select from actor where id = 7 )

I would get an actor record followed by some movie records.

This would force me to build the object or document that I am interested in 
myself afterwards, instead of the query returning straight what I want.

Also, you state calling it SQL, but the first thing anyone (or am I alone?) 
would do in a query is returning data from different objects next to each 
other, so you can quickly see what you are interested in from your 
database, like Peoples names and the companies they work for, for example.


Anyway, I like a language more than a programming API, and I would be 
tempted to do as much as possible using OrientSQL (or rather Cypher if 
OrientDB would support it), instead of using the Gremlin API, if only the 
languga would allow me to do that...

But my question is: would you consider looking at the current language that 
OrientDB provides again, or do you stand by your original choices? Maybe 
even provide something similar to Cypher?


-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to orient-database+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to