【发布时间】:2017-12-30 05:44:20
【问题描述】:
我从 MongoDB 迁移到 Postgres。但我还是更喜欢猫鼬提供的一些接口。因此,我尝试实现它们。这是问题所在,我创建了一个名为“用户”的类。它有“保存”方法。在猫鼬中,无论何时更新或创建新文档,我都可以调用“保存”将文档插入/更新到数据库中。他们是如何实施的?有什么建议吗?
这是我尝试过的,但我不确定这是不是一个好习惯:
class User {
constructor (obj) {
for (let key in obj) {
this[key] = obj[key]
}
Object.defineProperty(newAdmin, 'exist', {
configurable: true,
writable: true,
enumerable: false,
value: false
})
}
async update () {//}
async save () {
const user = this
if (user.exist) {
return user.update()
}
const query = `query here`
const {rows} = await db.query(query)
Object.assign(user, rows[0])
user.exist = true
return user
}
}
【问题讨论】:
-
如果你想在PostgreSQL中实现类似的功能,你可以使用
INSERT ... ON CONFLICT DO UPDATE SET...postgresql.org/docs/current/static/sql-insert.html -
酷,非常感谢
标签: node.js mongodb postgresql mongoose