Skip to content

Instantly share code, notes, and snippets.

@joesavak
Last active April 19, 2018 15:53
Show Gist options
  • Save joesavak/36e14099a29f1f1def3be0258b675493 to your computer and use it in GitHub Desktop.
Save joesavak/36e14099a29f1f1def3be0258b675493 to your computer and use it in GitHub Desktop.
Testing data load into MongoDB of Kiva API data
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//connect to local datastore
mongoose.connect('mongodb://localhost/kivaDB');
mongoose.connection.on('open', function () {
console.log('Mongoose connected');
});
//set schema, based on https://transform.now.sh/json-to-mongoose
var loan = new Schema({
loans: {
id: {
type: 'Number'
},
name: {
type: 'String'
},
description: {
languages: {
type: [
'String'
]
}
},
status: {
type: 'String'
},
funded_amount: {
type: 'Number'
},
basket_amount: {
type: 'Number'
},
image: {
id: {
type: 'Number'
},
template_id: {
type: 'Number'
}
},
activity: {
type: 'String'
},
sector: {
type: 'String'
},
themes: {
type: [
'String'
]
},
use: {
type: 'String'
},
location: {
country_code: {
type: 'String'
},
country: {
type: 'String'
},
town: {
type: 'String'
},
geo: {
level: {
type: 'String'
},
pairs: {
type: 'String'
},
type: {
type: 'String'
}
}
},
partner_id: {
type: 'Number'
},
posted_date: {
type: 'Date'
},
planned_expiration_date: {
type: 'Date'
},
loan_amount: {
type: 'Number'
},
borrower_count: {
type: 'Number'
},
lender_count: {
type: 'Number'
},
bonus_credit_eligibility: {
type: 'Boolean'
},
tags: {
type: 'Array'
}
}
});
//set the model
var loanModel = mongoose.model('Loan', loan);
//perform search - similar to select * from loans limit 5;
loanModel.find({},{},{limit:5,sort:{timestamp:-1}},
function(err,ls) {
if(err){throw err;}
//print out to make sure we got 5 back
console.log(ls.length);
//iterate through the 5 and print specific items from the data-set for spot-checking
for (var i = 0; i<ls.length; i++) {
var loanitem = ls[i].toObject();
console.log(loanitem.id);
console.log(loanitem.loan_amount);
console.log(loanitem.name);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment