Node.js 如何过滤GETAPI请求
我想用mongod中的过滤器检索数据。除了按id查找外,还有其他方法可以按值检索吗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)=>{
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});