我允许用户使用FB跳过登录或登录。当用户登录时,我使用FB配置文件ID在用户集合中创建用户,当他跳过它时,我仍然使用一些唯一的客户端ID创建他的用户。在客户端应用程序中,用户可以将文章添加为书签并将其同步到服务器。用户可以在以后随时使用FB登录。一旦用户使用FB登录,我必须合并使用FB创建的用户和使用客户端ID创建的用户,以便他存储的数据完美映射。
我尝试了什么:
考虑用户跳过登录,我在USER集合中创建了一个用户。 用户在应用程序的生命周期之间使用FB登录,我将在我的收藏中搜索此FB ID。如果此ID不存在,我使用FB id更新跳过的用户文档。如果存在,我将从FB用户文档合并数据到跳过的用户文档并删除FB用户文档。
另一种方法:
在用户登录之前,我不会将任何书签同步到服务器。一旦他登录,我将立即同步所有数据。
进行此类操作的有效方法是什么?
答案 0 :(得分:0)
如果我理解正确,您需要找到具有相同clientId
的文档,并将facebook用户文档添加到其中。
您可以使用mongo update命令执行此操作,使用$set
将新文档与现有mongo文档https://docs.mongodb.com/manual/reference/operator/update/set/合并
所以你的代码看起来像这样
db.collection("users").update(
// first parameter is mongo query to match based on clientId
{ clientId: 100 },
// second parameter is the document that will be merged using $set
{ $set: facebookDocument })
此结果将是与facebookDocument