2013-08-19 2 views
2

Есть ли какой-либо механизм контроля порядка свойств?Можно ли управлять имуществом Neo4j?

я не могу воспроизвести это в http://www.neo4j.org/console

Использование Neo4j 1.9.2 сообщества, если я делаю следующее:

CREATE (m1 {`$type`: {moduleTypeName}, Name: 'M1', ModelNumber: 'MN1'}) 

Тогда позже я получаю этот узел обратно из шифровальщика запроса с помощью REST Cypher конечной точки I вернуться ...

{ 
    "extensions": {}, 
    "paged_traverse": "http://localhost:7575/db/data/node/3777/paged/traverse/{returnType}{?pageSize,leaseTime}", 
    "outgoing_relationships": "http://localhost:7575/db/data/node/3777/relationships/out", 
    "traverse": "http://localhost:7575/db/data/node/3777/traverse/{returnType}", 
    "all_typed_relationships": "http://localhost:7575/db/data/node/3777/relationships/all/{-list|&|types}", 
    "property": "http://localhost:7575/db/data/node/3777/properties/{key}", 
    "all_relationships": "http://localhost:7575/db/data/node/3777/relationships/all", 
    "self": "http://localhost:7575/db/data/node/3777", 
    "properties": "http://localhost:7575/db/data/node/3777/properties", 
    "outgoing_typed_relationships": "http://localhost:7575/db/data/node/3777/relationships/out/{-list|&|types}", 
    "incoming_relationships": "http://localhost:7575/db/data/node/3777/relationships/in", 
    "incoming_typed_relationships": "http://localhost:7575/db/data/node/3777/relationships/in/{-list|&|types}", 
    "create_relationship": "http://localhost:7575/db/data/node/3777/relationships", 
    "data": { 
     "ModelNumber": "MN1", 
     "$type": "ModuleType", 
     "Name": "M1" 
    } 
} 

Я использую http://james.newtonking.com/pages/json-net.aspx для разбора JSON и для того, чтобы автоматически вывести тип объекта, свойство $ типа должно быть первым , Это имеет смысл при анализе JSON в потоке, когда вы не хотите сначала загружать всю вещь в память.

Это не похоже на алфавит, и это не кажется случайным. Кажется, что порядок согласован для разных типов объектов, но несовместим между ними.

Я также вытащил узел в оболочке, и поэтому кажется, что порядок не зависит от того, как я получаю узел, но не связан с порядком, в котором я создаю узел.

ответ

3

Недвижимость не имеет гарантированного заказа. Не принимайте никаких предположений о «возможно» заказе. Предстоящая версия может изменить это предполагаемое поведение и сломать ваш код.

Я думаю, что в Cypher проще не возвращать сам узел в пользу списка свойств, например.

START node=node(<myid>) 
RETURN node.`$type`, node.ModelNumber, node.Name 

Это определенные столбцы.

+0

К сожалению, cypher возвращает свойства в столбцах {columns: [], data: []}, что делает его немного более сумасшедшим для отображения POJO/POCO. – LameCoder

+0

Если вы используете только часть данных ответа json, вы должны быть в порядке. –

Смежные вопросы