高效的 NoSQL 用户设计

Efficient NoSQL user design

我将 MongoDB 与 Node 一起用于一个相对简单的 Web 应用程序,该应用程序涉及用户注册和验证其登录信息。我有使用关系数据库的经验,但对 NoSQL 游戏还很陌生。我想知道我是否有效地使用 NoSQL 数据库和我当前的数据存储格式?

我目前用于保存用户的代码如下所示:

db.users.save({email: req.body.email, display_name: req.body.displayName, password: req.body.password}, function(err, saved) {
    if( err || !saved ) 
        console.log("User not saved");
    else 
        console.log("User saved in MongoDB");
});

这里发生的事情是每个用户都在 MongoDB "collection." 中生成他或她自己的文档我想知道当用户群变得相对大,需要快速找到用户进行认证?

任何可以在概念上帮助我或为我指明学习更多方向的答案都将不胜感激!

在 MongoDB 中,对与错主要取决于您将如何与数据交互。但是对于大多数用例来说,每个用户一个文档似乎是一种可行的策略。

要加快用户检索速度,请记住 add indexes 那些您要检索用户的字段。

在这种情况下,您保存的文档没有 _id 字段。这意味着将使用新生成的 _id 生成一个新文档,即使数据库中已经存在具有相同值的条目也是如此。这是你想要的吗?当您想使用 .save(doc) 功能更新现有文档时,您需要使文档的 _id 与您要更新的文档的值相同。