你如何通过 id 以外的东西在存储库中找到一个项目
How do you find an item in a repository by something other than id
如果我有一个包含许多属性的存储库,并且我想通过非 ID 属性 查找某些内容,我是先查找所有内容,然后再 return 布尔比较后的数据,还是有没有更好的方法通过 属性 找到不是 ID 的东西?
对于环回 3,您可以在此处找到查询数据的文档:https://loopback.io/doc/en/lb3/Querying-data.html
基本上,使用这样的查询过滤器:
const objects = await app.models.ModelName.find(
{
where: {
propertyName: value
}
}
)
不要忘记为要查询的 属性 定义索引,否则数据库引擎将执行完整的 table 扫描。
"properties": {
"propertyName": {
"type": "string",
"index": {
"unique": true
}
},
...
}
在 loopback4 中,您需要为此使用存储库。如下操作。
如果您知道只有一个条目具有值。 (唯一列)
const user = await this.userRepository.findOne({
where: {
username: 'test_admin'
}
});
对于可以有多个的情况。
const user = await this.userRepository.find({
where: {
firstName: 'test admin'
}
});
如果我有一个包含许多属性的存储库,并且我想通过非 ID 属性 查找某些内容,我是先查找所有内容,然后再 return 布尔比较后的数据,还是有没有更好的方法通过 属性 找到不是 ID 的东西?
对于环回 3,您可以在此处找到查询数据的文档:https://loopback.io/doc/en/lb3/Querying-data.html
基本上,使用这样的查询过滤器:
const objects = await app.models.ModelName.find(
{
where: {
propertyName: value
}
}
)
不要忘记为要查询的 属性 定义索引,否则数据库引擎将执行完整的 table 扫描。
"properties": {
"propertyName": {
"type": "string",
"index": {
"unique": true
}
},
...
}
在 loopback4 中,您需要为此使用存储库。如下操作。
如果您知道只有一个条目具有值。 (唯一列)
const user = await this.userRepository.findOne({
where: {
username: 'test_admin'
}
});
对于可以有多个的情况。
const user = await this.userRepository.find({
where: {
firstName: 'test admin'
}
});