/vt13_curso_mongodb/Agregaciones/generar_datos.php

https://bitbucket.org/clcena/mongodb · PHP · 84 lines · 66 code · 18 blank · 0 comment · 3 complexity · 029b859595acb2ab215c2e52e413bcdc MD5 · raw file

  1. <?php
  2. require('dbconnection.php');
  3. $titulos = array(
  4. 'Libro de fundamentales programación.',
  5. 'Ingeniería de software.',
  6. 'Administración de Sistemas.',
  7. 'Estructura Bases de Datos.',
  8. 'Usos de Inteligencia Artificial.',
  9. 'Sistemas de Control de Versiones.',
  10. 'Trabajar en Red.',
  11. 'Herramientas Opensource.',
  12. 'Funcionamiento de Algoritmos.',
  13. 'Fundamentos Seguridad.',
  14. );
  15. $autores = array('Juan Arteaga', 'Rosa Orgaz', 'Juan Calvero', 'Daniel Valero', 'Espardan Malen', 'Jaime Ractor', 'Herminio Menéndez', 'Noemi Gálvez');
  16. $descripcion = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ".
  17. "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ".
  18. "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ".
  19. "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
  20. $categorias = array('Electronica', 'Matemáticas', 'Programación', 'Estructuras de Datos',
  21. 'Algoritmos', 'Sistema Operativo', 'Administración Bases de Datos',
  22. 'Inteligencia Artificial',
  23. 'Redes');
  24. $tags = array('programación', 'testeo', 'diseñoweb', 'tutorial', 'howto', 'version-control', 'nosql',
  25. 'algoritmos', 'ingeniería', 'software', 'hardware', 'seguridad', 'consultores',
  26. 'presentación', 'hacking', 'taller', 'optimización', 'código', 'opensource', 'productividad');
  27. function getRandomArrayItem($array)
  28. {
  29. $length = count($array);
  30. $randomIndex = mt_rand(0, $length - 1);
  31. return $array[$randomIndex];
  32. }
  33. function getRandomTimestamp()
  34. {
  35. $randomDigit = mt_rand(0, 6) * -1;
  36. return strtotime($randomDigit . ' día');
  37. }
  38. function createDoc()
  39. {
  40. global $titulos, $autores, $categorias, $tags;
  41. $titulo = getRandomArrayItem($titulos);
  42. $autor = getRandomArrayItem($autores);
  43. $categoria = getRandomArrayItem($categorias);
  44. $articleTags = array();
  45. $numOfTags = rand(1,5);
  46. for ($j = 0; $j < $numOfTags; $j++){
  47. $tag = getRandomArrayItem($tags);
  48. if(!in_array($tag, $articleTags)){
  49. array_push($articleTags, $tag);
  50. }
  51. }
  52. $publishedAt = new MongoDate(getRandomTimestamp());
  53. $rating = mt_rand(1, 10);
  54. return array('titulo' => $titulo, 'autor' => $autor, 'categoria' => $categoria,
  55. 'tags' => $articleTags, 'publicado_el' => $publishedAt,
  56. 'rating' => $rating);
  57. }
  58. $mongo = DBConnection::instantiate();
  59. $collection = $mongo->getCollection('ejemplo_articulos');
  60. echo "Generando datos ejemplo...";
  61. for ($i = 0; $i < 1000; $i++)
  62. {
  63. $document = createDoc();
  64. $collection->insert($document);
  65. }
  66. echo "Terminado";