swapnil
swapnil

Reputation: 13

How do you search for an entry by a specific field like name in a mongodb server using express?

This is an express server that interacts with a mongoDb server using mongoose.Here I want to search for a specific entry with a given name instead of using findbyid function in the /getCollege/:name route.

const express = require('express');
const College = require('./model/collegeModel')
const parser = require('body-parser');

const app = express();
const mongoose = require('mongoose');
const collegeData = require('./data/college_data.json')

// app.use(parser);
mongoose.connect('mongodb+srv://swapnil:[email protected]/db?retryWrites=true&w=majority', { useNewUrlParser: true, useUnifiedTopology: true }).then(() => { console.log('connected to db') })
//
app.get('/', (req, res) => {
    res.send('We are home');
})
   
app.get('/getCollege/:name',async (req,res) =>{
    
    
})
app.listen(3000);

Upvotes: 0

Views: 18

Answers (1)

Firmino Changani
Firmino Changani

Reputation: 959

Parameters variables such as :name are available through req.params, on your case: req.params.name. After getting the value you would something like:

const express = require('express');
const College = require('./model/collegeModel')
const parser = require('body-parser');

const app = express();
const mongoose = require('mongoose');
const collegeData = require('./data/college_data.json')

// your code 
   
app.get('/getCollege/:name',async (req, res) =>{
  try {
    const document = await College.findOne({ name: req.params.name });
    res.json(document);
  } catch(error) {
    // Handle the error here.
    console.log(error);
  }
});

// your code 

Take a look at these reading materials as well:

1 - http://expressjs.com/en/guide/routing.html

2 - https://medium.com/weekly-webtips/9-best-practices-for-rest-api-design-7fb0b462099b

Upvotes: 1

Related Questions