diff neo4j_remove.js @ 0:aa7a5cc0f59b default tip

commit
author ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
date Tue, 30 Dec 2014 18:27:26 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/neo4j_remove.js	Tue Dec 30 18:27:26 2014 +0900
@@ -0,0 +1,81 @@
+// $ node neo4j_remove.js a a localhost 7474 1
+
+var
+  esc = require('querystring').escape,
+  neo4j = require('./neo4j_driver.js');
+
+var
+	file_nodes = process.argv[2],
+	file_relations = process.argv[3],
+	host = process.argv[4],
+	port = process.argv[5]
+	debug = Number(process.argv[6]),
+	neo4jClient = neo4j.createClient({'host':host, 'port':port}),
+	uri_base = 'http://' + host + ':' + port + '/db/data/';
+
+var start = process.hrtime();
+
+var elapsed_time = function(note){
+    var precision = 3; // 3 decimal places
+    var elapsed = process.hrtime(start)[1] / 1000000; // divide by a million to get nano to milli
+    console.log(process.hrtime(start)[0] + " s, " + elapsed.toFixed(precision) + " ms - " + note); // print message + time
+    start = process.hrtime(); // reset the timer
+}
+
+deleteRelationships(0, 11694, function(){
+	deleteNodes(1, 545, function(){});
+});
+
+
+function deleteNodes(base, num, callback){
+	var cnt = 0;
+	for(var i = base + 1; i <= base + num; i++){
+		deleteNode(i, function(){
+			cnt += 1;
+			if(cnt % 100 == 0){
+				if(debug) console.log('DELETING NODES STATUS:', cnt);
+			}
+			if(cnt == num){
+				console.log('DELETING NODES FINISHED:', cnt);
+				callback();
+			}
+		});
+	}
+}
+function deleteNode(id, callback){
+	// USE BATCH BECAUSE DELETE METHOD IS NOT DEFINED IN THE DRIVER
+	data = [{'method':'DELETE', 'to':'node/' + id, 'body':'', 'id':0}];
+	neo4jClient.post('batch/', data, function(obj){
+		console.log(obj);
+		callback();
+	});
+}
+function deleteRelationships(base, num, callback){
+	var cnt = 0;
+	for(var i = base + 1; i <= base + num; i++){
+		deleteRelationship(i, function(){
+			cnt += 1;
+			if(cnt % 100 == 0){
+				if(debug) console.log('DELETING RELATIONSHIPS STATUS:', cnt);
+			}
+			if(cnt == num){
+				console.log('DELETING RELATIONSHIPS FINISHED:', cnt);
+				callback();
+			}
+		});
+	}
+}
+function deleteRelationship(id, callback){
+	// USE BATCH BECAUSE DELETE METHOD IS NOT DEFINED IN THE DRIVER
+	data = [{'method':'DELETE', 'to':'relationship/' + id, 'body':'', 'id':0}];
+	neo4jClient.post('batch/', data, function(obj){
+		//console.log(obj);
+		callback();
+	});
+}
+
+
+
+
+
+