繁体   English   中英

如何过滤get api请求

[英]How to filter the get api request

我想在 mongod 中使用过滤器检索数据。 除了按 id 查找之外,还有什么方法可以按值检索

 this.retrieveByID = (id)=>{
    return new Promise((resolve,reject)=>{
        Todo.findById(id).then((data)=>{
            resolve({status:200,message:data});
        }).catch((err)=>{
            reject({status:500,message:'No data to be found. Error: '+err});
        })
    });
};

这是我通过 id 方法检索我想将我的参数作为 {value:value} 与路由一起传递

Mongodb 提供了其他的搜索查询方法,如Collection.findOne()Collection.find()Collection.findById()

最好,您可以编写一个通用函数来按查询搜索您的数据库。

 // for single document
 this.retrieveOne = (query)=>{
    if(!query){
        query = {};
    }
    return new Promise((resolve,reject)=>{
        Todo.findOne(query).then((data)=>{
            resolve({status:200,message:data});
        }).catch((err)=>{
            reject({status:500,message:'No data to be found. Error: '+err});
        })
    });
};

    // for list of documents
 this.retrieveMany = (query)=>{
    if(!query){
        query = {};
    }
    return new Promise((resolve,reject)=>{
        Todo.find(query).then((data)=>{
            resolve({status:200,message:data});
        }).catch((err)=>{
            reject({status:500,message:'No data to be found. Error: '+err});
        })
    });
};

你可以利用这个功能

retrieveOne({id: "YOUR_UNIQUE_ID"});
retriveOne({name: "YOUR_NAME"});
retrieveMany({age: { $gte: 20 }});
retrieveMany({deleted: false, male: true});

看起来您正在使用猫鼬。 您可以使用findOnefind方法按字段值检索数据。 例子 -

Todo.findOne({type: 'phone'})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM