我想你的例子有兩個類的簡單DB:
- 比爾(延伸V)與物業billDate的日期時間;
- nextBill(擴展E)。
與此查詢
create vertex Bill set billDate=sysdate(), in_nextBill=(select @rid from Bill where billDate in (select max(billDate) from Bill))
,你可以在同一時間創造法案和邊緣提到了以前。
EDITED
我創建了一個Javascript函數,去除兩個記錄之間的邊緣和前兩者之間插入一個新的記錄(相對邊緣)。 該功能接受三個輸入參數: * date1:datetime format
; * date2:datetime format
; * newBillDate:datetime format
是您要插入前兩個之間的新賬單的日期;
var g=orient.getGraph();
var d1=g.command('sql','select from Bill where billDate in "'+date1+'"');
var d2=g.command('sql','select from Bill where billDate in "'+date2+'"');
var startDate=d1[0];
var endDate=d2[0];
if(endDate.getRecord().field("billDate").getTime()<startDate.getRecord().field("billDate").getTime()){
var temp=endDate;
endDate=startDate;
startDate=temp;
}
var selectEdge=g.command('sql','select from nextBill where in='+endDate.getId()+' and out='+startDate.getId());
g.command('sql','delete edge '+selectEdge[0].getId());
var newIns=g.command('sql','create vertex Bill set billDate="'+newBillDate+'"');
g.commit();
g.command('sql','create edge nextBill from '+startDate.getRecord().getIdentity()+' to '+newIns.getRecord().getIdentity());
g.command('sql','create edge nextBill from '+newIns.getRecord().getIdentity()+' to '+endDate.getRecord().getIdentity());
感謝@LucaS的答案,但如果我想插入2張紙幣間的新法案是什麼,可以說今天是星期二,新法案將不會有'SYSDATE()',而這將有13個: 00星期日下午 – DrAhmedJava
嗨,你想在2個預定義日期之間插入新賬單嗎? – LucaS
是的,這正是我想要的,問題是搜索時間這一點隨着數據庫中賬單增加而增加,我知道這將涉及改變之前,當前和下一個賬單之間的邊界,但是一旦我得到正確的插入點 – DrAhmedJava