cancel
Showing results for 
Search instead for 
Did you mean: 

Move documents from very large folder

fedorow
Elite Collaborator
Elite Collaborator

Hi!

I've got a folder with tens of thousands of documents. Share doesn't show the content of this folder. Node browser can't show a list of children. It must be reorganised to make the folder useful. I'm looking for a way to get the children nodes of the folder on purpose to move them to the proper location. I tried javascript, CMIS, REST API. All ways have the same problem - timeout. Sometimes I can catch several children by javascript and move it. But it is not a stable solution.

Which function/method/request can get one or several children without reading the whole children map?

1 ACCEPTED ANSWER

fedorow
Elite Collaborator
Elite Collaborator

The search query give me any quontity of children I want.

If longFolder is a node of my folder, next query give quick answer:

var query = "PATH:'" + longFolder.qnamePath + "/*' AND PARENT:'" + longFolder.nodeRef + "' AND TYPE:'cm:content'";
var searchQuery =	
{
	query: query,
	language: "fts-alfresco",
	page: {maxItems: 100}
};
var pack = search.query(searchQuery);

for each (var doc in pack){
	logger.log(doc.name + " \t" + doc.parent.id);
//move doc to new place
... }

Required quantity of nodes is given in maxItems.

Only one thing, after moving/organise documents, search need some time to find propper pack again. So I check parent relation every time before move.

View answer in original post

3 REPLIES 3

angelborroy
Community Manager Community Manager
Community Manager

I guess you can find some pattern (based in the filename, date of modification...) so you can create a filter and get only a subset of files on every step inside a loop.

Hyland Developer Evangelist

fedorow
Elite Collaborator
Elite Collaborator

So the answer is - there is no way to get the short part of a long children map.

Thanks, you saved my time! Smiley Happy

Will be digging from the documents properties side.

fedorow
Elite Collaborator
Elite Collaborator

The search query give me any quontity of children I want.

If longFolder is a node of my folder, next query give quick answer:

var query = "PATH:'" + longFolder.qnamePath + "/*' AND PARENT:'" + longFolder.nodeRef + "' AND TYPE:'cm:content'";
var searchQuery =	
{
	query: query,
	language: "fts-alfresco",
	page: {maxItems: 100}
};
var pack = search.query(searchQuery);

for each (var doc in pack){
	logger.log(doc.name + " \t" + doc.parent.id);
//move doc to new place
... }

Required quantity of nodes is given in maxItems.

Only one thing, after moving/organise documents, search need some time to find propper pack again. So I check parent relation every time before move.