如何在猫鼬中执行查找查询? [英] How do I perform a find query in Mongoose?

查看:72
本文介绍了如何在猫鼬中执行查找查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在mongodb中收集了一些电子书数据,例如

i have a collection of Ebooks data in mongodb like

{ 
    "_id" : ObjectId("58b56fe19585b10cd42981d8"), 
    "cover_path" : "D:\\Ebooks\\uploads\\ebooks\\cover\\1488285665748-img1-700x400.jpg", 
    "path" : "D:\\Ebooks\\uploads\\ebooks\\pdf\\1488285665257-Webservices Natraz.pdf", 
    "description" : "ebook", 
    "title" : "book name", 
    "tag" : [
        "Hindi", 
        "Other"
    ], 
    "__v" : NumberInt(0)
}

现在,如果关键字与"title:"有点不匹配,我想搜索一些内容,然后显示所有相关的图书对象.

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

我的猫鼬模式是:-

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);

我尝试:-

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);
        });
    });

但是我发现null我该怎么办?我只想在搜索一点点关键字时才找到所有相关的对象.

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

推荐答案

尝试将查询包裹在curlies中,Mongoose希望有一个对象作为查询.

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: false }));
    });

这篇关于如何在猫鼬中执行查找查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆