mongo-connecter
v1.0.4
Published
Connects to your mongodb without hassle. It also contains a prebuilt api.
Downloads
12
Readme
mongo-connecter
This module lets you connect to your mongodb without hassle. It also contains a prebuilt api.
When you call a function it connects to your mongodb and the collection, executes the function/functions you want. Then it closes the db.
The functions are asynchronous and returns promises, therefore you'll need to use await
or .then()
.
Installation
npm install mongo-connecter --save
Setup
const dsn = "mongodb://localhost:27017/people"
const myCollection = require('mongo-connecter').init(dsn, 'collection')
I will use this for my documentation below:
const artists = require('mongo-connecter').init(dsn, 'artists')
How to use
collectionDo
:
It will execute all functions but return the last,
data = await artists.collectionDo(
col => col.insert({name: 'Jason'}),
col => col.findOne({name: 'Jason'})
);
How to use prebuilt api
You only need collectionDo()
but you can also use the prebuilt api:
fetch
:
const data = await myCollection.fetch()
// or
const data = await artists.fetch({name: "John"}) // returns array with artists with name john
fetchOne
:
const data = await myCollection.fetchOne()
insert
:
var item = {
name: "Veronica",
wikipedia: 'link'
}
const info = await artists.insert(item)
update
:
var item = {
name: 'new name',
wikipedia: 'new link'
}
await artists.update(_id, item)
remove
:
await artists.remove(_id)
insertAndFetch(item)
: inserts and then returns your new item
updateAndFetch(_id, item)
: updates and then returns your updated item
Example with express
// Create an object and return list of all objects
router.post("/insert", async (req, res) => {
var item = {
name: req.body.name,
wikipedia: req.body.wikipedia,
youtube: req.body.youtube
}
try {
await artists.insert(item)
const data = await artists.fetch()
res.json(data)
} catch (err) {
console.log(err)
res.json(err)
}
})
Testing
We use docker as testing enviroment.
// starts mongodb and then test
npm run docker-build-start
// If you only want to start test
npm run docker-build-start test