📜  MongoDB Stitch

📅  最后修改于: 2020-11-23 01:32:44             🧑  作者: Mango

MongoDB针

MongoDB提供了一个无服务器平台,可在不设置服务器基础结构的情况下快速构建应用程序。 MongoDB Stitch被设计为MongoDB Atlas的升级版本。它会自动将连接集成到我们的数据库。 Stitch阐明了开发和实施过程。它通过忽略构建和部署后端的需求来实现这一目标。 MongoDB缝线作为后端服务提供,使我们能够轻松配置数据身份验证,数据访问规则和服务。

MongoDB针脚提供了可升级的基础结构设计来处理请求。它还协调服务和数据库交互。也就是说,我们不需要在配置服务器等任务上花费时间和资源。

例如,我们可以使用MongoDB Stitch生成管道,该管道将允许我们通过HTTP服务使用Stripe接受付款,更新购买日期以及使用Mailgun服务发送确认电子邮件。

使用Stitch UI创建Stitch应用程序

步骤1:转到https://www.mongodb.com/cloud/atlas页面,然后登录到您的Atlas帐户。

步骤2:现在,您必须创建一个要与MongoDB Stitch应用程序一起使用的集群,请按照以下步骤操作:

  • 请点击左侧导航窗口中的集群按钮,然后点击建立新的集群按钮。 MongoDB针
  • 选择您的首选服务提供商,区域,等级和其他必需的设置。 MongoDB针
  • 群集的名称默认为Cluster0。如果要更改群集的名称,则必须执行此步骤,因为一旦配置,就无法更改群集的名称。 MongoDB针
  • 最后,单击“创建集群”按钮以保存所做的更改。

步骤3:在MongoDB地图集内,从左侧导航窗口中单击Stitch Apps。

步骤4:在那之后,点击Create New Application按钮。

步骤5:在“创建新应用程序”弹出窗口上,为您的Stitch应用程序输入名称。

步骤6:从Link to Cluster下拉对话框中选择项目中的集群。 MongoDB Stitch会自动创建链接到您的集群的MongoDB服务。

步骤7:在“针迹服务名称”字段中填写针迹将创建的服务的名称。

步骤8:为您的应用程序选择部署模型和部署区域。然后单击创建按钮。

成功部署后,将出现以下窗口。

使用Stitch CLI创建Stitch应用程序

步骤1:首先,为您的应用程序创建一个新目录,并在目录的根目录下添加一个itchle.json文件。该文件必须包含一个空的JSON对象。

步骤2:使用API密钥通过Atlas对MongoDB Stitch应用程序进行身份验证。

stitch-cli login --api-key=my-api-key --private-api-key=my-private-api-key

步骤3:现在,使用“ stitch-cli import”命令导入Stitch CLI库。

步骤4:您应该验证是否创建了应用程序。

针迹查询

使用MongoDB查询语言,我们可以直接从客户端应用程序代码查询在MongoDB中存储的数据。用于MongoDB集合的Stitch服务器使我们能够根据登录的用户或每个文档的内容,使用指定的数据访问规则安全地过滤结果。

Student集合包含示例拼贴中描述每个学生的文档。每个文档都包含学生的姓名,电子邮件,地址,费用以及学生信息流中的信息。在下面给出的示例中,我们将比较学生收集的所有文档,然后将格式化结果作为表格返回。

HTML档案:

 

Count of Results:

Name Email Class Batch Fees

Java脚本文件:

const {
  Stitch,
  RemoteMongoClient,
  UserPasswordCredential
} = stitch;

const stitchClient = Stitch.initializeDefaultAppClient("stitch-quickstarts-zhpox");

login("javatpoint@example.com", "password123").then(() => {
  // Initialize a MongoDB Service Client
  const mongodb = stitchClient.getServiceClient( RemoteMongoClient.factory,
    "mongodb-atlas");
  // Get a hook to the student collection
  const students = mongodb.db("Admin").collection("students");
  
  return students.find({}, {
    // limit: 2,
    // sort: { "fees": -1 }
  })
    .asArray();
})
  .then(displayStudents)

function login(email, password) {
  const credential = new UserPasswordCredential(email, password);
  return stitchClient.auth.loginWithCredential(credential);
}


// Renders the the students' information in the table
function displayStudents(students) {
  const employeesTableBody = document.getElementById("students");
  const numResultsEl = document.getElementById("num-results");
  const tableRows = students.map(student => {
    return '
      
        ${student.name.last}, ${student.name.first}
        ${student.email}
        ${student.role}
        ${student.manager.name.first}${student.manager.name.last} (${student.admin.id || "no manager"})
        ${student.fees}
      
    ';
  });
  studentTableBody.innerHTML = tableRows.join("");
  numResultsEl.innerHTML = student.length;
}

用规则保护数据

如果我们不想让每个学生看到其他每个学生的数据,则可以使用收集规则。我们可以使用它来控制所有用户都可以访问的数据,而无需更改查询的模式。

创建博客应用

在这里,我们正在使用Stitch创建博客和评论系统。我们正在使用MongoDB Stitch JavaScript SDK和MongoDB服务直接从客户端代码添加和查询注释。

博客应用程序的体系结构

博客应用程序体系结构需要以下功能:

  • 登录能力。
  • 博客文章存储能力。
  • 博客文章评论能力。

当我们使用MongoDB Atlas Cluster时,我们可以存储评论和身份验证详细信息,允许用户使用临时帐户发布评论。

博客架构的三个主要组成部分是:

  • 网络前端,
  • 针迹应用
  • MongoDB Atlas数据库。

博客应用程序体系结构的前端处理显示和用户交互。 Stitch管理来自前端的所有请求,并仅允许将经过验证的请求发送到数据库,从而为我们的用户保存评论。

为博客应用创建后端

博客应用程序的后端用于存储评论和其他详细信息,例如-验证和授权用户,查找博客帖子的现有评论等。我们将评论存储在MongoDB应用程序示例中。在这里,我们将限制用户创建,编辑和删除仅与他们的用户ID相关联的注释的权限。我们还需要确保一个用户不能以其他用户身份登录;我们可以使用MongoDB针脚中的内置用户管理系统来实现。

要求:

  • MongoDB Atlas帐户。
  • 还有Atlas上托管的MongoDB集群。我们建议您创建一个免费的M0 Atlas集群,并且易于学习。

步骤1:按照上述指示创建针迹应用程序。

步骤2:在您创建的Stitch应用程序中打开“匿名身份验证”。

步骤3:最后,配置blog.comments MongoDB集合

  • 在Stitch UI的左侧导航中,单击MongoDB Atlas下的规则。
  • 然后,单击添加收藏集。
  • 现在,输入博客作为数据库名称,并输入注释作为集合名称。
  • 选择“无模板”选项,然后单击“添加收藏夹”。

步骤4:启用对评论的读写。

第5步:最后,通过在Stitch GUI顶部的弹出窗口中单击Review&Deploy Changes来发布应用程序。

为博客应用程序创建Web客户端

步骤1:创建HTML页面,如下所示。


  
  
  
    

This is the first blog post of JavaTpoint

Learn technology from javaTpoint to keep yourself industry ready.

步骤2:现在,附加以下JavaScript SDK。附加MongoDB Stitch SDK。将下面给出的脚本标记添加到html文件的头部。


步骤3:初始化应用程序客户端和MongoDB Service客户端,以将评论存储在MongoDB中。用您的Stitch替换应用ID 。您可以在Stitch Interface的客户端页面上找到您的App ID。


步骤4:现在,添加下面给出的脚本以在页面加载时查询并显示注释。

function displayComments() {
  db.collection("comments")
    .find({}, {limit: 1000})
    .toArray()
    .then(docs => {
      const html = docs.map(doc => '
${doc.comment}
'); document.getElementById("comments").innerHTML = html; }); }

步骤5:您必须创建一个文件,允许用户在加载期间登录并显示评论。

function displayCommentsOnLoad() {
  client.auth

    .loginWithCredential(new stitch.AnonymousCredential())

    .then(displayComments)
    .catch(console.error);
}

步骤6:现在,创建一个表单以提交评论。

function addComment() {
  const newComment = document.getElementById("new_comment");
  console.log("add comment", client.auth.user.id)
  db.collection("firstcomment")
    .insertOne({ owner_id : client.auth.user.id, comment: newComment.value })
    .then(displayComments);
  newComment.value = "";
}