我有一个普通的JavaScript对象,不存在则增加,存在则更新,代码如下,
const AV = require('../libs/av-weapp-min.js')
class Item extends AV.Object {
static createOrUpdate(item) {
item.save().then((item) => {
}).catch(console.error)
}
static fromPlainObject(obj) {
const item = new Item()
for (var key in obj) {
//copy all the fields
if (key === 'createdAt' || key === 'updatedAt') continue
if (key === 'objectId') {
item.set('id', obj[key])
} else {
item.set(key, obj[key])
}
}
return item
}
}
AV.Object.register(Item, 'Item');
module.exports = Item;
给定一个 plain object, 调用如下代码更新或创建:
const item = Item.fromPlainObject(obj)
Item.createOrUpdate(item)
这段代码总是抛出错误:
A unique field was given a value that is already taken.
我猜测应该是 id
在数据库中已经存在了,既然存在,就应该更新这条数据,为什么无法更新呢?
-
创建时间
17年1月15日
-
最后回复
17年1月16日
-
2
回复
-
1.4K
浏览
-
2
用户