Postgresql 环回返回PU/UPSERT上的现有记录
我有以下PostGreSQL位置表: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
--------------------
| 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
});