Is there a way for MongoDB to search an entire collection's keys' contents using only a single search keyword?

Suppose I have the following collection (let's call it foodCollection):

```
{    
    name: "Chocolate Mousse Cake", 
    type: "Cake" 
},
{
    name: "Mother's Cookies", 
    type: "Cookies" 
},
{
    name: "Dark Bar", 
    type: "Chocolate" 
}

```

I want my search to look for matches that contain "Chocolate", meaning it should return "Chocolate Mousse Cake" and "Dark Bar".

I'm trying to do this using the ff: code:

**Client-side controller**

```
// Search Products
$scope.searchProduct = function () {

    $http.get('/api/products/search/' + $scope.searchKeyword).success(function(data){
        console.log(data);
    })
    .error(function(err) {
        console.log("Search error: " + err);
    });
 }

```

**Express.js**

`app.get('/api/products/search/:param', productController.search); // Search for product`

**Server-side controller** (I used [this reference](https://docs.mongodb.com/v3.2/reference/operator/query/or/) from the MongoDB docs):

```
// Search
module.exports.search = function(req, res) {

    console.log("node search: " + req.body);

    Product.find({ $or: [{productName: req.body}, 
                         {productType: req.body}]
                 }, function(err, results) {
                        res.json(results);
    });
}

```

When I executed this, I got nothing. Am I missing something?

Any help would be greatly appreciated. Thank you.

**UPDATE (FINAL)**

Finally solved this thanks to Joydip's and digit's tips. Here's my solution in case somebody else gets the same problem as I did:

**Client-side controller**

```
$scope.searchProduct = function () {

    if ($scope.searchKeyword == '') {
        loadFromMongoDB();    // reloads original list if keyword is blank
    }
    else {
        $http.get('/api/products/search/' + $scope.searchKeyword).success(function(data){

            if (data.length === 0) {
                $scope.showNoRec = true; // my flag that triggers "No record found" message in UI
            }
            else {
                $scope.showNoRec = false;
                $scope.productList = data; // passes JSON search results to UI
            }
        });    
    }
}

```

**Express.js**

```
app.get('/api/products/search/:keyword', productController.search);   // Search for product

```

**Mongoose schema**

```
var mongoose = require('mongoose');

var schema = new mongoose.Schema({
    productName: String,
    productType: String,
    productMaker: String,
    productPrice: Number,
    createDate: Date,
    updateDate: Date
});
schema.index({productName: "text", productType: "text", productMaker: "text"});

```

**Server-side controller**

```
module.exports.search = function(req, res) {

    Product.find({$text: {$search : req.params.keyword}}, function(err, results){
        res.json(results);
    })
}

```

Thank you everyone for your help. :)