Data present in my collection is not displayed in my backend server

Can anyone can help me to display the data in my backend server

It shows only {“data”:}, But my collection having some data int it

Please do not post your code as an image. We cannot cut-n-paste it.

Are you using mongoose? If not, then find() returns a cursor. You have to consume the cursor. Calling toArray() is one way to do it.


const express = require(“express”);

const bodyParser = require(“body-parser”);

const cors = require(“cors”);

const db = require(’./db’);

const app = express();

const productRouter = require(’./routes/productRouter.js’)

var corsOptions = {





app.use(bodyParser.urlencoded({extended: true}));

db.on(‘error’, console.error.bind(console, ‘MongoDB Connection Failed:’))


res.json({message: "Welcome to E-canteen"});


const PORT = process.env.PORT || 6505;

app.listen(PORT, () => {

console.log(`Server is running on port ${PORT}`);



const express = require(‘express’)

const router = express.Router()

const Product = require(’…/models/productModel’)

router.get(’/’, async (req, res) => {

try {

    const products = await Product.find([])


} catch (err) {

    res.status(400).send({ error: err})



router.get(’/products-by-categories’, async (req,res) =>{

try {

    const products = await Product.aggregate([

        { $match: {}},

        { $group: {

            _id: '$category',

            products: {$push: '$$ROOT'}


        {$project: { name: '$_id',products: 1, _id: 0}}


    res.status(200).send({data: products})

} catch (err) {

    res.status(400).send({error: err})



module.exports = router;

Why did you added the empty array parameter to find()

where you simply had

const products = await Product.find()

Your code does not show how you connect to your database server. It is probably done in


Have you tried

Share a screenshot that shows the data you have in your database. The ideal is a screenshot using mongosh so we can see the database and the collection use.