0.0.1-0.0.2-convert_embedded_object_to_schema.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * Fakie::app.js
  3. *
  4. * @package Fakie
  5. * @author Sotaro KARASAWA <sotarok@crocos.co.jp>
  6. * @version 0.0.0
  7. */
  8. var util = require('util');
  9. var config = require('config');
  10. var mongo = require('mongoose');
  11. var async = require('async');
  12. var user = require('../../lib/user');
  13. var page = require('../../lib/page');
  14. var revision = require('../../lib/revision');
  15. mongo.connect('mongodb://' + config.mongodb.user + ':' + config.mongodb.password + '@' + config.mongodb.host + '/' + config.mongodb.dbname);
  16. module.exports = {
  17. user: user
  18. ,page: page
  19. ,revision: revision
  20. };
  21. var options = {
  22. offset: 0,
  23. limit : 999,
  24. revisionSlice: {$slice: 9999}
  25. };
  26. var q = page.Page.findListByStartWith('/', options, function(err, docs) {
  27. var i = 0;
  28. async.forEach(docs, function(data, cb) {
  29. var ii = 0;
  30. var path = data.path;
  31. var pageId = data._id;
  32. console.log("path: ", data._id, path);
  33. async.forEachSeries(data.revisions, function(rData, rcb) {
  34. var newRevision = new revision.Revision();
  35. newRevision.path = path;
  36. newRevision.body = rData.body;
  37. newRevision.format = rData.format;
  38. newRevision.createdAt = rData.createdAt;
  39. newRevision.save(function (err, n) {
  40. if (!err) {
  41. console.log(" ", path, ii++, rData.createdAt, " ... ok", n._id);
  42. } else {
  43. console.log(" ", path, ii++, rData.createdAt, " ... ERROR!");
  44. console.log(err);
  45. }
  46. rcb();
  47. });
  48. //rcb();
  49. }, function (rErr) {
  50. console.log(" ", path, " all revision imported.");
  51. revision.Revision.findLatestRevision(path, function(err, fr) {
  52. page.Page.updateRevision(pageId, fr._id, function(err, frr) {
  53. if (!err) {
  54. console.log(" Page revision updated", pageId, path, i++);
  55. } else {
  56. console.log(" Page revision update ERROR", pageId, path, i++);
  57. }
  58. cb();
  59. });
  60. });
  61. });
  62. }, function(err) {
  63. console.log('end');
  64. mongo.disconnect();
  65. });
  66. });