0

我已经成功地从 Twitter 的 oauth 服务中检索了用户的 id 和屏幕名称,如下所示:

{ user_id: '12345678', screen_name: 'spencergardner' }

我希望为用户创建一种简单的方式来使用 Twitter(例如 Facebook 很快)进行身份验证,以便他们可以将他们有兴趣学习的单词添加到他们的帐户中。我现在如何在 mongodb 集合中设置“用户”,以允许每个用户拥有自己的单词库(和其他数据)?

4

2 回答 2

0

我使用 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");
            }
        })
于 2012-11-26T14:36:46.777 回答
0

如果我理解正确,您是在问如何在 mongo 集合中存储具有不同结构的数据。

好吧,你很幸运!Mongo 就是这样做的。您可以在 mongo 集合中存储任何不同的数据结构,而无需先验地“声明”该结构。只需创建一个 DBObject(例如,如果使用 Java 驱动程序),向其中添加字段,然后保存即可。然后,您可以检索它,并查询数据以查看此特定用户拥有什么,以及您在应用程序中想要的任何东西。

于 2012-11-26T01:57:28.133 回答