mirror of https://gitee.com/bigwinds/arangodb
edges of a vertex will be removed, when vertex is removed
This commit is contained in:
parent
b1ce2058fd
commit
072b00c54b
|
@ -373,6 +373,21 @@ var Graph = function(graphName, edgeDefinitions, vertexCollections, edgeCollecti
|
|||
|
||||
_.each(vertexCollections, function(obj, key) {
|
||||
self[key] = obj;
|
||||
var old_remove = obj.remove.bind(obj);
|
||||
obj.remove = function(vertexId, options) {
|
||||
var myEdges = self._EDGES(vertexId);
|
||||
myEdges.forEach(
|
||||
function(edgeObj) {
|
||||
var edgeId = edgeObj._id;
|
||||
var edgeCollection = edgeId.split("/")[0];
|
||||
if (db[edgeCollection] && db[edgeCollection].exists(edgeId)) {
|
||||
db[edgeCollection].remove(edgeId);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return old_remove(vertexId, options);
|
||||
}
|
||||
});
|
||||
|
||||
_.each(edgeCollections, function(obj, key) {
|
||||
|
|
|
@ -830,6 +830,20 @@ function EdgesAndVerticesSuite() {
|
|||
assertTrue(vertex);
|
||||
},
|
||||
|
||||
test_vC_removeWithEdge : function () {
|
||||
var vertex1 = g.unitTestVertexCollection1.save({first_name: "Tim"});
|
||||
var vertexId1 = vertex1._id;
|
||||
var vertex2 = g.unitTestVertexCollection1.save({first_name: "Tom"});
|
||||
var vertexId2 = vertex2._id;
|
||||
var edge = g.unitTestEdgeCollection1.save(vertexId1, vertexId2, {});
|
||||
var edgeId = edge._id;
|
||||
var result = g.unitTestVertexCollection1.remove(vertexId1);
|
||||
assertTrue(result);
|
||||
assertFalse(db.unitTestEdgeCollection1.exists(edgeId));
|
||||
result = g.unitTestVertexCollection1.remove(vertexId2);
|
||||
assertTrue(result);
|
||||
},
|
||||
|
||||
test_eC_save_undirected : function() {
|
||||
var vertex1 = g.unitTestVertexCollection1.save({first_name: "Tom"});
|
||||
var vertexId1 = vertex1._id;
|
||||
|
|
Loading…
Reference in New Issue