-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimport.js
110 lines (98 loc) · 3.02 KB
/
import.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
const csv = require("csvtojson");
const Datastore = require("nedb");
var moviesDB = new Datastore({ filename: "db/movies.db", autoload: true });
var nestedDB = new Datastore({ filename: "db/nested.db" });
// var tagsDB = new Datastore({ filename: "db/tags.db", autoload: true });
// var scoresDB = new Datastore({ filename: "db/scores.db" });
// var scores2DB = new Datastore({ filename: "db/scores2.db" });
// moviesDB.loadDatabase(async (err) => {
// if (err) {
// console.log(err);
// } else {
// const moviesJson = await csv().fromFile("./data/movies.csv");
// const startTime = Date.now();
// moviesDB.insert(moviesJson, (err, document) => {
// if (err) console.log(err);
// console.log((Date.now() - startTime) / 1000);
// });
// }
// });
// tagsDB.loadDatabase(async (err) => {
// if (err) {
// console.log(err);
// } else {
// const tagsJson = await csv().fromFile("./data/tags.csv");
// const startTime = Date.now();
// tagsDB.insert(tagsJson, (err, document) => {
// if (err) console.log(err);
// console.log((Date.now() - startTime) / 1000);
// });
// }
// });
// scoresDB.loadDatabase(async (err) => {
// if (err) {
// console.log(err);
// } else {
// const scoresJson = await csv().fromFile("./data/scores.csv");
// const startTime = Date.now();db
// });
// }
// });
// scores2DB.loadDatabase(async (err) => {
// if (err) {
// console.log(err);
// } else {
// const scoresJson = await csv().fromFile("./data/scores2.csv");
// const startTime = Date.now();
// scores2DB.insert(scoresJson, (err, document) => {
// if (err) console.log(err);
// console.log((Date.now() - startTime) / 1000);
// });
// }
// });
nestedDB.loadDatabase(async (err) => {
if (err) {
console.log(err);
} else {
console.log("Loaded Database");
const scores = await csv().fromFile("./data/scores.csv");
const tags = await csv().fromFile("./data/tags.csv");
console.log("Loaded input");
const movies = await new Promise(async (resolve, reject) => {
moviesDB.find({}, {}, (err, data) => {
if (err) reject(err);
else resolve(data);
});
});
let i = 0;
for (let movie of movies) {
console.log(i);
const newMovie = {
_id: movie._id,
movieId: Number(movie.movieId),
title: movie.title,
genres: movie.genres,
tags: [],
};
const movieScores = scores.filter((val) => val.movieId === movie.movieId);
if (movieScores != 0) {
movieScores.forEach((movieScore) =>
newMovie.tags.push({
tagId: Number(movieScore.tagId),
tag: tags.find((val) => val.tagId === movieScore.tagId).tag,
relevance: Number(movieScore.relevance),
})
);
}
await new Promise(async (resolve, reject) => {
nestedDB.insert(newMovie, (err, doc) => {
if (err) console.log(err);
else {
resolve(true);
}
});
});
i++;
}
}
});