You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Vikas Saurabh (JIRA)" <ji...@apache.org> on 2015/05/19 21:07:59 UTC

[jira] [Comment Edited] (OAK-2887) Add support for generating mongo export command to oak-mongo

    [ https://issues.apache.org/jira/browse/OAK-2887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14551030#comment-14551030 ] 

Vikas Saurabh edited comment on OAK-2887 at 5/19/15 7:07 PM:
-------------------------------------------------------------

[~chetanm] Oops!. Ok, attached another [patch|^ExportDetailedDoc-take2.patch] to print {{mongoexport}} command that would extract the documents.

The output from {{mongoexport}}, although, isn't quite working right for me. Here's a command line I used to generate mongoexport command:
{noformat}
> oak.printMongoExportCommand("/etc", {db: "aem-author"})}
{noformat}
The execution of mongoexport looked like:
{noformat}
mongoexport --host 127.0.0.1 --port 27017 --db aem-author --collection nodes --out all-required-nodes.json --query '{"$or":[{"_id":{"$regex":"2:p\\/"}},{"_id":{"$regex":"3:p\\/etc\\/"}},{"_id":{"$in":["0:/","1:/etc"]}}]}'
connected to: 127.0.0.1:27017
exported 8 records
{noformat}
where all the (snipped) results were:
{noformat}
{ "_id" : "2:p/r14d6b944992-0-1/0",...}
{ "_id" : "2:p/r14d6b96491f-0-1/0",...}
{ "_id" : "2:p/r14d6b97d85d-0-1/0",...}
{ "_id" : "2:p/r14d6b98b821-0-1/0",...}
{ "_id" : "2:p/r14d6b9951ef-0-1/0",...}
{ "_id" : "2:p/r14d6b9ad5bc-0-1/0",...}
{ "_id" : "2:p/r14d6b9ce045-0-1/0",...}
{ "_id" : "2:p/r14d6b9ebc74-0-1/0",...}
{noformat}
Notice, only split docs are showing up. I, then tried modifying mongoexport command to not account for split docs (removed the regex ones from {{or}} list) and it included {{0:/}} and {{1:/etc}} correctly:
{noformat}
mongoexport --host 127.0.0.1 --port 27017 --db aem-author --collection nodes --out all-required-nodes.json --query '{"$or":[{"_id":{"$in":["0:/","1:/etc"]}}]}'                   connected to: 127.0.0.1:27017
exported 2 records
{noformat}
I'm unable to figure out what am I missing :/. I tried {{--limit 0}} as well but that didn't work too.

BTW, the printed mongoexport didn't work out as is on my windows cmd. It worked fine on cygwin though. I think we'd need to document that somewhere (unless there's a way to fix it -- which I didn't actually find)


was (Author: catholicon):
Whoops!. Ok, attached another [patch|^ExportDetailedDoc-take2.patch] to print {{mongoexport}} command that would extract the documents.

The output from {{mongoexport}}, although, isn't quite working right for me. Here's a command line I used to generate mongoexport command:
{noformat}
> oak.printMongoExportCommand("/etc", {db: "aem-author"})}
{noformat}
The execution of mongoexport looked like:
{noformat}
mongoexport --host 127.0.0.1 --port 27017 --db aem-author --collection nodes --out all-required-nodes.json --query '{"$or":[{"_id":{"$regex":"2:p\\/"}},{"_id":{"$regex":"3:p\\/etc\\/"}},{"_id":{"$in":["0:/","1:/etc"]}}]}'
connected to: 127.0.0.1:27017
exported 8 records
{noformat}
where all the (snipped) results were:
{noformat}
{ "_id" : "2:p/r14d6b944992-0-1/0",...}
{ "_id" : "2:p/r14d6b96491f-0-1/0",...}
{ "_id" : "2:p/r14d6b97d85d-0-1/0",...}
{ "_id" : "2:p/r14d6b98b821-0-1/0",...}
{ "_id" : "2:p/r14d6b9951ef-0-1/0",...}
{ "_id" : "2:p/r14d6b9ad5bc-0-1/0",...}
{ "_id" : "2:p/r14d6b9ce045-0-1/0",...}
{ "_id" : "2:p/r14d6b9ebc74-0-1/0",...}
{noformat}
Notice, only split docs are showing up. I, then tried modifying mongoexport command to not account for split docs (removed the regex ones from {{or}} list) and it included {{0:/}} and {{1:/etc}} correctly:
{noformat}
mongoexport --host 127.0.0.1 --port 27017 --db aem-author --collection nodes --out all-required-nodes.json --query '{"$or":[{"_id":{"$in":["0:/","1:/etc"]}}]}'                   connected to: 127.0.0.1:27017
exported 2 records
{noformat}
I'm unable to figure out what am I missing :-/. I tried {{--limit 0}} as well but that didn't work too.

> Add support for generating mongo export command to oak-mongo
> ------------------------------------------------------------
>
>                 Key: OAK-2887
>                 URL: https://issues.apache.org/jira/browse/OAK-2887
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: run
>            Reporter: Chetan Mehrotra
>            Priority: Minor
>             Fix For: 1.3.0
>
>         Attachments: ExportDetailedDoc-take2.patch, ExportDetailedDoc.patch, createExportCommand.groovy
>
>
> At time to analyse a issue with {{DocumentNodeStore}} running on Mongo we need a dump of various documents so as to recreate the scenario locally. In most case if issue is being observed for a specific path like /a/b then its sufficient to get Mongo documents for /, /a, /a/b and all the split documents for those paths.
> It would be useful to have a function in oak-mongo which generates the required export command. For e.g. for path like /a/b following export command would dump all required info
> {noformat}
> mongoexport -h <mongo server> --port 27017 --db <db name> --collection nodes --out all-required-nodes.json --query '{$or:[{_id : /^4:p\/a\/b\//},{_id : /^3:p\/a\//},{_id : /^2:p\//},{_id:{$in:["2:/a/b","1:/a","0:/"]}}]}'
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)