Postgresql 环回返回PU/UPSERT上的现有记录

Postgresql 环回返回PU/UPSERT上的现有记录,postgresql,loopbackjs,upsert,Postgresql,Loopbackjs,Upsert,我有以下PostGreSQL位置表: -------------------- | ID | Name | -------------------- | 1 | Kitchen | -------------------- | 2 | Bedroom1 | -------------------- ID是顺序PQ,名称具有唯一约束 Locations.json Name属性已更改 "index": { "unique": true }, 和Locat

我有以下PostGreSQL位置表:

--------------------
| ID | Name        |
--------------------
| 1  | Kitchen     |
--------------------
| 2  | Bedroom1    |
--------------------
ID是顺序PQ,名称具有唯一约束

Locations.json Name属性已更改

"index": {
    "unique": true
 },
和Locations.js包括
Location.validateUniquenceSof('Name')


如果我使用JSON{
“Name”:“Kitchen”}
位置运行
PUT
,我会得到一个422验证错误,这很好,但理想情况下我会同时得到现有的Kitchen记录(或至少是ID)。我可以通过一个REST调用在环回框架中实现这一点吗?

您可以使用自定义远程方法扩展API,然后在模型上使用findOrCreate方法将找到的或创建的实例作为响应返回


谢谢@A.Z。如果数据库中已经存在完整对象,则返回完整对象,但如果添加了完整对象,则不会返回完整对象。有没有办法用新的ID字段返回新插入的记录。。。我自己也尝试过这个方法,它总是返回id(找到的或创建的)。文档中说,如果找到实例,它会返回实例,但它总是返回实例。它确实起作用——环回似乎希望所有的模型和属性都是小写的,否则就会停止工作。非常感谢。
Location.findOrCreate(
  {where: {"name": "Kitchen"}},
  data,
  function(err, instance){
    if (err){
      console.log(err);
    }
    console.log(instance); //this will be your found or created instace based on query
  });