Vik*_*nth 3 mongodb loopbackjs v4l2loopback
我想强制执行唯一性,所以我想看看是否有任何其他电子邮件和用户名与发布到此路由的电子邮件和用户名类似。我如何通过存储库做到这一点,它不断询问我看到但无法理解它的过滤器。
@post('/users', {
responses: {
'200': {
description: 'User model instance',
content: {'application/json': {schema: {'x-ts-type': User}}},
},
},
})
async create(@requestBody() user: User): Promise<User> {
//check : User= await this.userRepository.create(user);
//@param.query.object('filter', getFilterSchemaFor(User)) filter?: Filter;
// var check:any=await this.userRepository.find(filter);
//filter: Filter;
var check: User = await this.userRepository.find({email:user.email});
var isNotPresent: boolean = true;
// check.forEach(function(val){
// });
// if(isNotPresent)
return await this.userRepository.create(user);
}
Run Code Online (Sandbox Code Playgroud)
甲Filter对象具有可以被用来定义一个查询以下属性和它的响应:
where: 用于定义查询。在您的情况下,您希望找到与请求正文中提供的电子邮件和用户名相同的现有用户。fields:指定要在查询响应中包含或排除的字段。返回的数组中的每个对象find()都将只有那些true在fields对象。 offset, skip,limit和order: 用于分页。因此,在您的情况下,假设“用户”具有“电子邮件”和“用户名”,则过滤器对象将如下所示:
const filter: Filter = {
where: {
'email': user.email,
'username': user.username
},
fields: {
email: true,
username: true
},
offset: 0,
limit: 10,
skip: 0,
order: [],
};
Run Code Online (Sandbox Code Playgroud)
您对存储库方法的调用如下所示:
var check: User = await this.userRepository.find(filter);
Run Code Online (Sandbox Code Playgroud)
我的第一个 SO 答案。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |