如何筛选获取 api 请求



我想在 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'})

最新更新