2017-10-17 2 views
0

Ich arbeite an einfachen Abfrage-Generator, der verwendet wird, um Orientdb Abfragen zu generieren. Orientjs hat statement.js, mit dem die Abfragen generiert werden können, aber ich bin nicht sicher, ob wir alle Arten von Abfragen generieren könnten.Wie erstellt man Abfrage mit Orientjs?

Zum Beispiel:

select * from Employee where (FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%") 

ich verschiedene Optionen ausprobiert oben Abfrage mit orientjs Anweisung zu generieren, aber nicht in der Lage. Wie können wir auch Abfrage erstellen, um Datensatz mit Einfügen zu kopieren, Abfrage auswählen?

Unterstützt statement.js diese Art von Abfragen?

Antwort

3

Für komplexe where-Klauseln, kann man einfach eine rohe Zeichenfolge verwenden:

db.select() 
    .from('Employee') 
    .where('(FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")').all(); 

Um eine Kopie eines Knotens mit select/Insert zu erstellen, können Sie Kiste eine Transaktion über die db.let Funktion wie

return this.db 
    .let('original', (c) => { 
     c.select() 
     .from('Employee') 
     .where('(FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")') 
     }) 
    .let('copy', (c) => {c 
     .create('vertex','Employee') 
     .set('FirstName = $original[0].FirstName') 
     .set('LastName = $original[0].LastName') 
      }) 
    .commit() 
    .return('$copy') 
    .one(); 
Verwandte Themen