Node.js 如何过滤GETAPI请求

Node.js 如何过滤GETAPI请求,node.js,mongodb,Node.js,Mongodb,我想用mongod中的过滤器检索数据。除了按id查找外,还有其他方法可以按值检索吗 this.retrieveByID = (id)=>{ return new Promise((resolve,reject)=>{ Todo.findById(id).then((data)=>{ resolve({status:200,message:data}); }).catch((err)=>{

我想用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}与路由一起传递

似乎您正在使用Mongoose。您可以使用findOne或find方法按字段值检索数据。 示例-

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

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