当一个用户通过SSO(如google登录)时,我希望找到或创建该用户,并且只在sessionId为空时设置一个新的sessionId。
因此,如果它是一个返回的用户,具有sessionId,我不想更改它。如果它没有sessionId,我想创建它。
伪码:
User.findOneAndUpdate(query,
{
...data,
sessionId: userSessionId ? userSessionId : genSessionId()
}
)
在单个DB调用中是否可能实现这一点?
1条答案
按热度按时间wtlkbnrh1#
您可以直接在
filter
本身中添加:这样,如果用户已有
userSessionId
属性,查询将不会更新它。