完全脱机工作的领域(从不在线) [英] Realm with fully offline work (never online)

查看:25
本文介绍了完全脱机工作的领域(从不在线)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试了解MongoDB的每个元素是如何工作的,但是我真的很困惑脱机是如何处理的。

转到:https://realm.io/

我读到这个:

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

然后这部分提到脱机部分:

专为脱机使用而设计

这是否意味着领域可以用作移动应用中的完全脱机数据库?

如果我理解正确,此数据库的工作方式将类似于Android Room,在Android Room中,我使用对象/文档存储数据。

因为当我转到"让我们开始&q;"部分时,我会被重定向到此处:

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

阅读本部分的位置:

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

所以我的第一个问题:我为什么需要Atlas帐户?我知道Atlas将在云中有一个MongoDB数据库。如果我要使用脱机数据库,为什么需要此数据库?

我猜本教程想要展示所有工具协同工作。所以也许这一步可以跳过。然后转到Reaction Native教程,我看到这一部分:

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

连接到您的MongoDB领域应用

若要使应用程序与您的后端一起工作,您首先需要实例化领域应用程序。领域应用程序是MongoDB领域后端的接口。导航到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吗?这行得通吗?

这是否可能,或者领域是否真的不适合完全脱机工作?

推荐答案

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

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

这是否意味着可以将领域用作完全脱机 移动应用中的数据库?

当然。如前所述,数据存储在文件中。

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

脱机使用不需要Atlas帐户。您需要设置一个帐户才能访问MongoDB领域控制台并配置领域应用以进行同步

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

您问题中的代码在您使用MongoDB领域同步时使用。脱机使用不需要。

那么我的第二个问题是:如何使此部件脱机?我是不是应该 跳过APPID吗?这行得通吗?

脱机使用时不需要该代码。

这是否可能,或者领域并不真正适合完全脱机 工作?

它非常适合仅脱机工作,如果您想过渡到联机模式,它也非常适合脱机工作。

如果您只想脱机使用领域,请参阅文档Open a Local (Non-Synced) Realm,其中显示了

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

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");

这篇关于完全脱机工作的领域(从不在线)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆