完全离线工作的领域(从不在线)

2024-04-18

我试图了解 mongoDB 的每个元素是如何工作的,但我真的很困惑如何处理离线。

即将:https://realm.io/ https://realm.io/

我读到了这个:

Realm 移动数据库是 Core Data 和 SQLite 的开源、开发人员友好的替代方案。只需几分钟即可启动,几小时内即可移植您的应用程序,并节省数周的工作时间。

然后这部分提到了离线部分:

专为离线使用而设计

这是否意味着Realm可以在移动应用程序中用作完全离线的数据库?

如果我理解正确的话,这个数据库的工作方式与 Android Room 类似,我使用对象/文档存储数据。

因为当我进入“让我们开始”部分时,我被重定向到这里:

https://docs.mongodb.com/realm/get-started/introduction-mobile/ https://docs.mongodb.com/realm/get-started/introduction-mobile/

我在哪里读到这部分:

在开始之前,您需要一个 MongoDB Atlas 帐户。您可以在 Atlas 入门文档中了解有关创建 Atlas 帐户的更多信息

所以我的第一个问题是:为什么我需要 Atlas 帐户?我理解Atlas就是在云端有一个MongoDB数据库。如果我想使用离线数据库,为什么需要这个?

我想本教程想要展示所有工具的协同工作。所以也许可以跳过该步骤。但后来转到 React Native 教程,我看到了这部分:

https://docs.mongodb.com/realm/tutorial/react-native/#std-label-react-native-tutorial https://docs.mongodb.com/realm/tutorial/react-native/#std-label-react-native-tutorial

连接到您的 MongoDB Realm 应用程序

让应用程序与您的后端一起工作,您首先需要实例化 Realm 应用程序。 Realm 应用程序是 MongoDB Realm 后端的接口。导航到 getRealmApp.js 文件并完成 getRealmApp()

这部分代码似乎非常重要:

// Returns the shared instance of the Realm app.
export function getRealmApp() {
  if (app === undefined) {
    const appId = "<your Realm app ID here>"; // Set Realm app ID here.
    const appConfig = {
      id: appId,
      timeout: 10000,
      app: {
        name: "default",
        version: "0",
      },
    };
    app = new Realm.App(appConfig);
  }
  return app;
}

该代码迫使我指示我在领域控制台中获得的 AppId。

所以我的第二个问题:如何使这部分离线?我应该跳过 appId 吗?这行得通吗?

这是可能的还是 Realm 真的不适合完全离线工作吗?


I'm really confused about how the offline is handled.

Realm 是一个离线的第一个数据库,所有数据都存储在本地文件中,如果您使用 MongoDB Realm Sync,则稍后同步到服务器

这是否意味着Realm可以用作完全离线的 移动应用程序中的数据库?

一定。如上所述,数据存储在文件中。

所以我的第一个问题:为什么我需要 Atlas 帐户?

您不需要 Atlas 帐户即可离线使用。您需要设置一个帐户才能访问 MongoDB Realm 控制台并配置 Realm 应用程序进行同步

这部分代码似乎非常重要:

当您使用 MongoDB Realm Sync 时,将使用您问题中的代码。仅离线使用时不需要它。

所以我的第二个问题:如何使这部分离线?我应该只是 跳过appId?这行得通吗?

您不需要该代码仅用于离线使用。

这是可能的还是 Realm 并不真正适合完全离线 工作?

它非常适合仅离线工作,如果您想过渡到在线模式,它也非常适合。

如果你想离线使用 Realm 只需查看文档打开本地(非同步)领域 https://docs.mongodb.com/realm/react-native/open-a-realm/#open-a-local--non-synced--realm这表明

要打开本地(非同步)领域,请将 Configuration() 对象传递给 Realm.open() 或 new Realm()。以下示例创建一个 具有定义本地文件的路径属性的配置对象 存储数据的路径。

const config = {
   schema: [schemas.TaskSchema, schemas.UserSchema, schemas.ProjectSchema],
   path: "./myrealm/data"
};
const realm = await Realm.open(config);

一旦你有了领域变量,你就可以在本地使用领域:

// Query realm for all instances of the "Task" type.
const tasks = realm.objects("Task");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

完全离线工作的领域(从不在线) 的相关文章

随机推荐

  • 运行单元测试时如何禁用 PostSharp?

    我希望我的 nunit 测试不应用任何 PostSharp 方面 这样我就可以单独测试我的方法 这可以在测试夹具设置中以某种方式完成 还是只能在每个项目级别上完成 您可以在测试版本上设置 SkipPostSharp 标志 这样它就不会首先编
  • R将列表逐行写入CSV

    我在 R 中有以下代码 library party dat read csv data csv header TRUE train lt dat 1 1000 test lt dat 1000 1200 output tree lt cfo
  • 如何在 Qt 中重写 QApplication::notify

    我正在尝试处理 Qt 应用程序中的异常 我浏览了几篇文章 其中指出了重写 QApplication notify 方法以在 Qt 中以有效的方式处理异常 我不确定应该在哪里添加这个重写方法 是mainwindow h还是main cpp 我
  • 传单 GeoJSON 点*后面*多边形

    我有两个传单 geojson 层 它们都有点和多边形特征 我希望能够在地图上对它们进行排序 但是当我今天这样做时 尝试通过按特定顺序添加它们来排序它们 使用 BringToBack bringToFront 等 两个图层中的点图标都位于所有
  • 如何使用mockMvc检查响应正文中的字符串

    我有简单的集成测试 Test public void shouldReturnErrorMessageToAdminWhenCreatingUserWithUsedUserName throws Exception mockMvc perf
  • SSRS IE8 JavaScript 错误无效字符 ScriptResource.axd

    我的一位同事在 SSRS 中制作了各种报告 我们办公室中有两台机器无法通过 Internet Explorer 8 加载报告 两台机器都在报告 正在加载 屏幕上返回 JavaScript 错误 在这些特定的机器上 报告在 FireFox 中
  • 由于 MIME 类型为 text/html,样式表未加载

    在 Firefox 上运行 MERN 应用程序时 在浏览器控制台中出现此错误 并且未加载 css The stylesheet http localhost 3000 src css component css was not loaded
  • CSS中心显示内联块?

    我这里有一个工作代码 http jsfiddle net WVm5d http jsfiddle net WVm5d 您可能需要将结果窗口放大才能看到对齐中心效果 Question 该代码工作正常 但我不喜欢display table 这是
  • 如何从另一个控制器重定向到 Index?

    我一直在寻找某种方法来重定向到Index从另一个控制器查看 public ActionResult Index ApplicationController viewModel new ApplicationController return
  • 我何时以及为什么应该使用 attr.Factory?

    我应该何时以及为何使用attr ib default attr Factory list over attr ib default 来自docs http attrs readthedocs io en stable api html我看到
  • 如何使用 JQuery 和 Ajax 验证表单字段并将表单数据发布到服务器?

    我正在尝试验证表单字段 例如姓名 不得为空 Email id 必须有效 手机 必须有效 填写所有信息后 我必须将此信息发送到服务器 并将响应重定向到不同的页面 这里什么都不起作用 我的表单 html
  • 如何在 OpenCV 中获取单独的轮廓(并填充它们)?

    我试图分离图像的轮廓 为了找到均匀的区域 所以我应用了 cvCanny 然后应用了 cvFindContours 然后每次按下一个键时 我使用以下代码绘制 1 个轮廓 for contours2 0 contours2 contours2
  • “转到实现”以“符号没有实现”结尾

    当右键单击时 例如Visual Studio 中的方法并选择Go To Implementation它告诉我 该符号没有实现 我尝试过 services AddDbContext
  • swift 2.1 alamofire超时方法

    我对 alamofire 超时方法有疑问 首先 我的英语可能不够好 无法让你们理解我所说的 但我会厌倦解释我的问题 在我的项目中 我使用了 alamofire 出于某种原因 我需要确保我的应用程序在连接不良的区域工作 所以我正在考虑使用超时
  • Node-sass 是 React 项目的开发依赖还是生产依赖?

    在各种 React 文档中 我看到它被添加为产品依赖项 但我不明白为什么 难道它不应该是一个 devDependecy 吗 因为 SASS 只在开发过程中被编译 而当推送到 prod 时 你实际上推送的是编译后的 CSS 文件 由于需要进行
  • redis集群不断打印日志WSA_IO_PENDING

    当我启动redis集群的所有redis服务器时 所有这些服务器不断打印类似WSA IO PENDING clusterWriteDone的日志 9956 03 Feb 18 17 25 044 WSA IO PENDING writing
  • .NET 列表.Distinct

    我正在使用 NET 3 5 为什么我仍然收到 不包含 不同 的定义 用这个代码 using System Collections Generic code List
  • R:进入“内部”环境

    给定一个environment object e gt e
  • 使用 highcharts 将 mysql 数据库中的动态数据添加到折线图

    我想使用 ajax 或 json 将数据点添加到我的折线图中 现在我必须重新加载整个网页才能在图表上显示我的新数据 但我想通过添加如下链接的点来显示实时数据 jsfiddle net gh get jquery 1 9 1 highslid
  • 完全离线工作的领域(从不在线)

    我试图了解 mongoDB 的每个元素是如何工作的 但我真的很困惑如何处理离线 即将 https realm io https realm io 我读到了这个 Realm 移动数据库是 Core Data 和 SQLite 的开源 开发人员