如何获取node-neo4j返回节点的数据只

我正在使用node-neo4j连接到neo4jgraphics数据库。 我注意到,每当我试图得到所有的节点(例如用户),json结果返回有太多的信息,我不需要。

以下是返回所有用户节点的代码:

User.getAll = function (callback) { var query = [ 'MATCH (user:User)', 'RETURN user', ].join('\n'); db.query(query, null, function (err, results) { if (err) return callback(err); var users = results.map(function (result) { return new User(result['user']); }); callback(null, users); }); }; 

它给了我这些json respsonse;

 [ { "_node": { "_nodeNeo4j": { "version": "1.1.0", "constructor": "Node" }, "_data": { "extensions": {}, "outgoing_relationships": "http://localhost:7474/db/data/node/13/relationships/out", "labels": "http://localhost:7474/db/data/node/13/labels", "all_typed_relationships": "http://localhost:7474/db/data/node/13/relationships/all/{-list|&|types}", "traverse": "http://localhost:7474/db/data/node/13/traverse/{returnType}", "self": "http://localhost:7474/db/data/node/13", "property": "http://localhost:7474/db/data/node/13/properties/{key}", "properties": "http://localhost:7474/db/data/node/13/properties", "outgoing_typed_relationships": "http://localhost:7474/db/data/node/13/relationships/out/{-list|&|types}", "incoming_relationships": "http://localhost:7474/db/data/node/13/relationships/in", "create_relationship": "http://localhost:7474/db/data/node/13/relationships", "paged_traverse": "http://localhost:7474/db/data/node/13/paged/traverse/{returnType}{?pageSize,leaseTime}", "all_relationships": "http://localhost:7474/db/data/node/13/relationships/all", "incoming_typed_relationships": "http://localhost:7474/db/data/node/13/relationships/in/{-list|&|types}", "data": { "uid": "53c7a820-f0b4-11e3-af63-28373723792e", "name": "user1" } } } }, 

无论如何,只要返回密码的结果的“数据”部分? 或者我应该去除node.js服务器中不需要的部分,然后将结果返回给客户端?

谢谢!

我设法返回只是数据字段通过更改返回的响应如下

 User.getAll = function (callback) { var query = [ 'MATCH (user:User)', 'RETURN user', ].join('\n'); db.query(query, null, function (err, results) { if (err) return callback(err); var users = results.map(function (result) { return new User(result['user']['data']); }); callback(null, users); }); }; 

我改变了返回新的用户(result ['user'] ['data']) ,它成功地返回了响应的“data”部分。

你可以更新你的查询来返回字段,而不是节点…

 ... RETURN user.uid, user.name 

这将使你的结果更多的是一个数据的“网格”的字段 – 但这听起来就是这样你正在寻找

上个星期我自己也在苦苦挣扎。 长话短说,你可以设置一个variables到JSON的特定部分,像这样:

var anything =JSON.stringify(results[0]._node._data.data); 该行为我返回{\"uid\":\"53c7a820-f0b4-11e3-af63-28373723792e\",\"name\":\"user1\"} 。 看看我的例子, 尝试解释Node-Neo4j API 。 只是一个顺便说一句,我不得不添加一个closures]到JSON才能正常工作。