我已经成功地从 Twitter 的 oauth 服务中检索了用户的 id 和屏幕名称,如下所示:
{ user_id: '12345678', screen_name: 'spencergardner' }
我希望为用户创建一种简单的方式来使用 Twitter(例如 Facebook 很快)进行身份验证,以便他们可以将他们有兴趣学习的单词添加到他们的帐户中。我现在如何在 mongodb 集合中设置“用户”,以允许每个用户拥有自己的单词库(和其他数据)?
我已经成功地从 Twitter 的 oauth 服务中检索了用户的 id 和屏幕名称,如下所示:
{ user_id: '12345678', screen_name: 'spencergardner' }
我希望为用户创建一种简单的方式来使用 Twitter(例如 Facebook 很快)进行身份验证,以便他们可以将他们有兴趣学习的单词添加到他们的帐户中。我现在如何在 mongodb 集合中设置“用户”,以允许每个用户拥有自己的单词库(和其他数据)?
我使用 mongoose 和 nodejs 来创建一个用户模型,然后您可以将 oauth 数据输入到该模型中,然后您就可以自由地关联您想要的任何数据。
获得 Oauth 信息后,您可以创建一个新用户,将 twitter 数据与该特定用户模型相关联。_id 是自动提供的,但是在这种情况下,您将使用从 twitter 返回的 user_id(假设它是唯一的)。
这是一个示例架构:
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var userSchema = new Schema({
_id: String,
screen_name: String,
words: Array
});
module.exports = mongoose.model('User', userSchema);
将来,您将能够查询特定用户的数据库,并在用户返回时对其进行身份验证。您还希望创建一个类似于以下内容的新用户:
new User({ _id: req.body.user_id,
password: req.body.screen_name,
words: []
}).save(function(err) {
if (!err) {
res.send("User added");
}
})
如果我理解正确,您是在问如何在 mongo 集合中存储具有不同结构的数据。
好吧,你很幸运!Mongo 就是这样做的。您可以在 mongo 集合中存储任何不同的数据结构,而无需先验地“声明”该结构。只需创建一个 DBObject(例如,如果使用 Java 驱动程序),向其中添加字段,然后保存即可。然后,您可以检索它,并查询数据以查看此特定用户拥有什么,以及您在应用程序中想要的任何东西。