Files
old-kivi/crawler/savers/mongo.js
Edin Dazdarevic 15dc596f3d Filters done
2017-04-05 02:02:43 +02:00

61 lines
1.3 KiB
JavaScript

import MongoClient from 'mongodb';
export default class MongoSaver {
constructor(url) {
this.url = url;
}
connect() {
let saver = this;
return new Promise((resolve, reject) => {
if (!saver.ready) {
MongoClient.connect(saver.url, (err, db) => {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
reject(err);
} else {
console.log('Connection established to', this.url);
saver.db = db;
saver.collection = db.collection('listings');
saver.ready = true;
resolve();
}
});
} else {
resolve();
}
});
}
save(results) {
let resultsForMongo = Object.keys(results).map((key) => {
return results[key]
});
this.collection.update({ url: results.url }, resultsForMongo, { upsert: true });
// this.collection.insert(resultsForMongo);
}
async close() {
try {
//Close connection
await this.disconnect();
} catch (e) {
console.log("error closing", e);
}
}
async disconnect() {
return new Promise((resolve, reject) => {
this.db.close();
resolve();
});
}
async open() {
await this.connect();
}
}