2016-04-15 21 views
1

Ich habe Benutzer Ecken, die eingehende Mitteilung Kanten haben, wie folgt:Wie erhalten Sie Benachrichtigungen, bei denen die Edge-Datumseigenschaft in Titan mit Gremlin größer als das zuletzt besuchte Datum ist?

Code bin mit Benachrichtigungen

g.v(17929472).outE('Notification') 

Antwort erhalten Ich erhalte:

{ 
    "success": true, 
    "results": [ 
    { 
     "Type": "UserReaction", 
     "PostedDate": "2016-04-15T09:03:42.8391677Z", 
     "NotificationInitiatedByVertexId": "2304", 
     "_id": "c7bb4-aoagw-sgl-aoao0", 
     "_type": "edge", 
     "_outV": 17929472, 
     "_inV": 17929728, 
     "_label": "Notification" 
    } 
    ], 
    "version": "2.5.0", 
    "queryTime": 15.310751 
} 

Jedes Mal, wenn der Benutzer anzeigen Benachrichtigung Ich speichere das zuletzt gesehene Datum und möchte dieses Datum verwenden, um alle Benachrichtigungen zu erhalten, die nach diesem Datum vorhanden sind.

Ich habe versucht:

g.v((5124096).outE).outE.has('PostedDate',T.gte, 2016-04-15T07:52:31.6979843Z).inV 

aber es gibt Fehler.

+1

Ihr Code zeigt an, dass Sie TinkerPop 2.x verwenden. Ich schlage vor, stattdessen zu TinkerPop 3+ zu wechseln, was eine komplette Neuschreibung mit einer viel leistungsfähigeren API ist. – jbmusso

Antwort

3

PostedDate scheint als String zurückgegeben werden. Erwägen Sie stattdessen, PostedDate in Ihrer Schemadefinition als zu definieren, und führen Sie dann den T.gte-Vergleich mit einem -Wert durch.

+0

Muss ich vorherige Testdaten löschen oder wird es funktionieren, wenn ich nur eine weitere Eigenschaft als PostedDateLong zusammen mit vorhandenen Eigenschaften hinzufügen? –

+1

einfach weitermachen und versuchen, es –

+0

Ich habe eine Kante hinzugefügt mit folgenden Eigenschaften Typ: WallPostNotification PostedDate: 2016-04-15T15: 01: 21.1012501Z PostedDateLong: 635963292811012501 NotificationInitiatedByVertexId: 17928960 _id: c7lmo-1S0-sgl -aoetc gEhas ('PostedDateLong', T.gte, 0) –