Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var MongoClient = require('mongodb').MongoClient;
- MongoClient.connect(process.env.DATABASE_URI, function(err, db) {
- if (err) {
- response.error(err);
- return;
- }
- var CountriesCollection = db.collection("Pais");
- CountriesCollection.find({}, {
- "code_tatoeba": 1,
- "idioma": 1,
- "bandera_file": 1
- }).toArray(function(error, countries) {
- var PortugueseCountries = [],
- ItalianCountries = [],
- SpanishCountries = [],
- FrenchCountries = [],
- EnglishCountries = [],
- RussianCountries = [],
- GermanCountries = [];
- for (var i = 0; i < countries.length; i++) {
- switch (countries[i].idioma) {
- case "Português":
- PortugueseCountries.push("Pais$" + countries[i]._id);
- break;
- case "Italiano":
- ItalianCountries.push("Pais$" + countries[i]._id);
- break;
- case "Español":
- SpanishCountries.push("Pais$" + countries[i]._id);
- break;
- case "Français":
- FrenchCountries.push("Pais$" + countries[i]._id);
- break;
- case "Pусский":
- RussianCountries.push("Pais$" + countries[i]._id);
- break;
- case "Deutsch":
- GermanCountries.push("Pais$" + countries[i]._id);
- break;
- case "English":
- EnglishCountries.push("Pais$" + countries[i]._id);
- break;
- }
- }
- var AudiosCollection = db.collection("Audios");
- AudiosCollection.count({
- "_p_pais": {
- $in: PortugueseCountries
- }
- }, function(error, countPortugueseAudios) {
- var limitPortuguese = 2;
- var skipPortuguese = getSkipCountryCount(countPortugueseAudios, limitPortuguese);
- var queries = generateQueryForAudiosRecommendation(PortugueseCountries, limitPortuguese, skipPortuguese);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, PortugueseAudios) {
- AudiosCollection.count({
- "_p_pais": {
- $in: ItalianCountries
- }
- }, function(error, countItalianAudios) {
- var limitItalian = 1;
- var skipItalian = getSkipCountryCount(countItalianAudios, limitItalian);
- queries = generateQueryForAudiosRecommendation(ItalianCountries, limitItalian, skipItalian);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, ItalianAudios) {
- AudiosCollection.count({
- "_p_pais": {
- $in: SpanishCountries
- }
- }, function(error, countSpanishAudios) {
- var limitSpanish = 3;
- var skipSpanish = getSkipCountryCount(countSpanishAudios, limitSpanish);
- queries = generateQueryForAudiosRecommendation(SpanishCountries, limitSpanish, skipSpanish);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, SpanishAudios) {
- AudiosCollection.count({
- "_p_pais": {
- $in: FrenchCountries
- }
- }, function(error, countFrenchAudios) {
- var limitFrench = 3;
- var skipFrench = getSkipCountryCount(countFrenchAudios, limitFrench);
- queries = generateQueryForAudiosRecommendation(FrenchCountries, limitFrench, skipFrench);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, FrenchAudios) {
- AudiosCollection.count({
- "_p_pais": {
- $in: RussianCountries
- }
- }, function(error, countRussianAudios) {
- var limitRussian = 1;
- var skipRussian = getSkipCountryCount(countRussianAudios, limitRussian);
- queries = generateQueryForAudiosRecommendation(RussianCountries, limitRussian, skipRussian);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, RussianAudios) {
- AudiosCollection.count({
- "_p_pais": {
- $in: GermanCountries
- }
- }, function(error, countGermanAudios) {
- var limitGerman = 2;
- var skipGerman = getSkipCountryCount(countGermanAudios, limitGerman);
- queries = generateQueryForAudiosRecommendation(GermanCountries, limitGerman, skipGerman);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, GermanAudios) {
- AudiosCollection.count({
- "_p_pais": {
- $in: EnglishCountries
- }
- }, function(error, countEnglishAudios) {
- var limitEnglish = 3;
- var skipEnglish = getSkipCountryCount(countEnglishAudios, limitEnglish);
- queries = generateQueryForAudiosRecommendation(EnglishCountries, limitEnglish, skipEnglish);
- AudiosCollection.find(queries[0], queries[1]).toArray(function(error, EnglishAudios) {
- var audios = [];
- PortugueseAudios.forEach(function(audio) {
- audios.push(audio);
- });
- ItalianAudios.forEach(function(audio) {
- audios.push(audio);
- });
- SpanishAudios.forEach(function(audio) {
- audios.push(audio);
- });
- FrenchAudios.forEach(function(audio) {
- audios.push(audio);
- });
- RussianAudios.forEach(function(audio) {
- audios.push(audio);
- });
- GermanAudios.forEach(function(audio) {
- audios.push(audio);
- });
- EnglishAudios.forEach(function(audio) {
- audios.push(audio);
- });
- for (var i = 0; i < audios.length; i++) {
- for (var j = 0; j < countries.length; j++) {
- if ("Pais$" + countries[j]._id == audios[i]._p_pais) {
- audios[i].image = process.env.filesPath + countries[j].bandera_file;
- audios[i].word = audios[i].palabra;
- delete audios[i]._p_pais;
- delete audios[i].palabra;
- j = countries.length;
- }
- }
- }
- response.success(shuffle(audios));
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement