[英]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});
看起来您正在使用猫鼬。 您可以使用findOne
或find
方法按字段值检索数据。 例子 -
Todo.findOne({type: 'phone'})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.