MongoDB
mongoose
An mongodb object modeling for node.js
Connection
const mongoose = require('mongoose')
const Products = require('./models/products_model.js');
const db = mongoose.connection;
// Connecting to MongoDB
mongoose
.connect('mongodb://localhost:27017/test', { useNewUrlParser: true, useUnifiedTopology: true })
.catch(error => handleError(error));
db.on('error', err => {
console.error(err);
});
db.once('open', function () {
app.listen(port, () => console.log(`Server listening on port ${port}`));
});Schema, Model
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Schema
const productSchema = new Schema({
name: String,
price: String,
});
mongoose.model("products", productSchema);Get all documents in model
const Products = mongoose.model("products", {name: String});
Products.find(function (error, products) { // find() method
if (err) return console.error(err);
res.json(products);
})Add document with POST method
app.post('/add', (req, res) => {
let newProduct = new Products(req.body); // new document instance
newProduct.save(function (err, product) { // save() method
if (err) return console.error(err);
// send response of all products
Products.find(function (error, products) {
res.json(products)
})
})
})Methods
find()
To select data from a table in MongoDB, we can also use the find() method.
The find() method returns all occurrences in the selection.
The first parameter of the find() method is a query object. In this example we use an empty query object, which selects all documents in the collection.
var dbo = db.db("mydb");
dbo.collection("customers")
.find({})
.toArray(function(err, result) {
if (err) throw err;
console.log(result);
});$pull()
The $pull operator removes from an existing array all instances of a value or values that match a specified condition.
db.collection("example")
.findOneAndUpdate(
{ _id: sourceId }, // select sourceId
{ $pull: { lists: { _id: listId } } } // remove listId from lists
)$push()
The $push operator appends a specified value to an array.
Modifier:
$each: Appends multiple values to the array field.
$position: Specifies the location in the array at which to insert the new elements. Requires the use of the $each modifier. Without the $position modifier, the $push appends the elements to the end of the array.
db.collection("example").updateOne(
{ _id: sourceId },
{
$push: {
lists: { $each: [list], $position: destinationIndex }
}
}
);Last updated
Was this helpful?