Zuerst, danke für diese großartige Datenbank. Es ist sehr einfach für jeden zu verstehen, der das relationale Modell kennt. Ich kann mir vorstellen, Daten für alle zukünftigen Projekte in einem Diagramm zu modellieren.OrientDB Queries-Syntax verwendet willkürlich die Groß-/Kleinschreibung
Nun ist die Frage,
Ich versuche Orientdb für die Datenmodellierung zu verwenden, und ich ein seltsames Problem konfrontiert. Die Feldnamen in den Abfragen verwenden die Groß-/Kleinschreibung willkürlich.
Zum Beispiel
SELECT FROM appuser WHERE mobile = '1111111111' AND out('userhasrole').rolename CONTAINS 'user'
und
SELECT FROM appuser WHERE MOBILE= '1111111111' AND out('userhasrole').rolename CONTAINS 'user'
funktioniert perfekt in Ordnung.
Aber
SELECT FROM appuser WHERE mobile = '1111111111' AND out('userhasrole').ROLENAME CONTAINS 'user'
und
SELECT FROM appuser WHERE MOBILE= '1111111111' AND out('userhasrole').ROLENAME CONTAINS 'user'
funktioniert nicht
Beachten Sie, dass es nicht, wenn "Rollenname" funktioniert nicht den Feldnamen exakt übereinstimmen. Könnten Sie bitte vorschlagen, ob das normal ist?
Eine andere Sache, wahrscheinlich wichtiger ist
SELECT FROM appuser WHERE MOBILE= '1111111111' AND out('userhasrole').rolename CONTAINS 'user'
funktioniert, aber
SELECT FROM appuser WHERE MOBILE= '1111111111' AND out('userhasrole').rolename ='user'
ist nicht. Das Feld "rolename" ist eine einfache Zeichenfolge, aber ich muss CONTAINS dafür verwenden, damit es funktioniert. Bitte beraten Sie auch dazu.
Bitte lassen Sie mich wissen, wenn ich etwas verpasst habe.
Danke!
Hallo @Sachin, welche Version von OrientDB verwenden Sie? – LucaS
Hallo @ Lucas, es ist die neueste OrientDB-Version für Windows. d.h. 2.1.16. früher habe ich 2.1.6 benutzt und es hatte das gleiche Problem. Ich habe viel Zeit verbracht, um nur Abfragen zu finden, die aufgrund dieses Verhaltens nicht funktionieren :( – Sachin
Hallo @Sachin, ich habe Ihren Fall versucht und die einzige Frage, die ich Ihnen stellen würde, ist auf die Abfrage 'SELECT FROM appuser WHERE MOBILE = '1111111111' und aus ('userhasrole'). rolename CONTAINS 'user'': Sind Sie sicher, dass Sie, auch nur aus Versehen, eine Eigenschaft namens' MOBILE 'mit Großbuchstaben (vielleicht im schemalosen Modus) erstellt haben? Ich frage Sie, weil Soweit ich weiß, ist in OrientDB der '@ class' Name case unsensitive, aber der' properties' Name ist immer case sensitive. – LucaS