0 votes
1 view
in Web Technology by (47.7k points)

I have a collection of Ebooks data in mongodb like

"_id" : ObjectId("58b56fe19585b10cd42981d8"), 

"cover_path" : 

"D:\\Ebooks\\uploads\\ebooks\\cover\\1488285665748-img1-700

x400.jpg", "path" : 

"D:\\Ebooks\\uploads\\ebooks\\pdf\\1488285665257-Webservice

s Natraz.pdf", "description" : "ebook", "title" : "book 

name", "tag" : [ "Hindi", "Other" ], "__v" : NumberInt(0) 

}

Now i want to search something if keyword is little bit match from "title:" then show all related books object.

My Mongoose schema is :-

var mongoose = require('mongoose'); 

var Schema = mongoose.Schema; 

var EbookSchema = new Schema({ title: {type:String}, description: {type:String}, path: {type:String,required:true}, cover_path: {type:String,required:true}, tag: [{ type: String }] });

module.exports = mongoose.model('Ebook', EbookSchema);

I try :-

app.get('/ebook?search=',function(req,res){

var search_key = req.param('search'); 

Ebook.find(title:'search',function(err, ebooks) { 

if (err) res.send(err); 

res.json(ebooks); 

}); 

});

but I found null how can I do? I only want when I search a little-bit keyword I found all related object.

1 Answer

0 votes
by (107k points)

To perform a find query in Mongoose you should try wrapping your query in curlies, Mongoose expects an object as the query.

app.get('/ebook?search=',function(req,res){ 

var search_key = req.param('search'); 

Ebook.find({title: search_key}) 

.then(ebooks => res.json(ebooks)) 

.catch(err => res.status(404).json({ success: fals})); 

});

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...