Mar*_*o L 10 realm mongodb react-native
我试图了解 mongoDB 的每个元素是如何工作的,但我真的很困惑如何处理离线。
\n前往: https: //realm.io/
\n我读到了这个:
\n\n\nRealm\xe2\x80\x99s 移动数据库是 CoreData 和 SQLite 的开源、开发人员友好的替代方案。只需几分钟即可启动,几小时内即可移植您的应用程序,并节省数周的工作时间。
\n
然后这部分提到了离线部分:
\n\n\n专为离线使用而设计
\n
这是否意味着Realm可以在移动应用程序中用作完全离线的数据库?
\n如果我理解正确的话,这个数据库的工作方式与 Android Room 类似,我使用对象/文档存储数据。
\n因为当我转到“让我们开始”部分时,我被重定向到此处:
\nhttps://docs.mongodb.com/realm/get-started/introduction-mobile/
\n我在哪里读到这部分:
\n\n\n在开始之前,您需要一个 MongoDB Atlas 帐户。您可以在 Atlas 入门文档中了解有关创建 Atlas 帐户的更多信息
\n
所以我的第一个问题:为什么我需要 Atlas 帐户?我理解Atlas就是在云端有一个MongoDB数据库。如果我想使用离线数据库,为什么需要这个?
\n我想本教程想要展示所有工具的协同工作。所以也许可以跳过该步骤。但后来转到 React Native 教程,我看到了这部分:
\nhttps://docs.mongodb.com/realm/tutorial/react-native/#std-label-react-native-tutorial
\n\n\n连接到您的 MongoDB Realm 应用程序
\n
\n\n要让应用程序与您的后端一起工作,您首先需要实例化 Realm 应用程序。Realm 应用程序是 MongoDB Realm 后端的接口。导航到 getRealmApp.js 文件并完成 getRealmApp()
\n
这部分代码似乎非常重要:
\n// Returns the shared instance of the Realm app.\nexport function getRealmApp() {\n if (app === undefined) {\n const appId = "<your Realm app ID here>"; // Set Realm app ID here.\n const appConfig = {\n id: appId,\n timeout: 10000,\n app: {\n name: "default",\n version: "0",\n },\n };\n app = new Realm.App(appConfig);\n }\n return app;\n}\nRun Code Online (Sandbox Code Playgroud)\n该代码迫使我指示我在领域控制台中获得的 AppId。
\n所以我的第二个问题:如何使这部分离线?我应该跳过 appId 吗?这行得通吗?
\n这是可能的还是 Realm 真的不适合完全离线工作吗?
\nJay*_*Jay 10
I'm really confused about how the offline is handled.
Run Code Online (Sandbox Code Playgroud)
Realm 是一个离线的第一个数据库,所有数据都存储在本地文件中,如果您使用 MongoDB Realm Sync,则稍后同步到服务器
这是否意味着Realm可以在移动应用程序中用作完全离线的数据库?
一定。如上所述,数据存储在文件中。
所以我的第一个问题:为什么我需要 Atlas 帐户?
您不需要 Atlas 帐户即可离线使用。您需要设置一个帐户才能访问 MongoDB Realm 控制台并配置 Realm 应用程序进行同步
这部分代码似乎非常重要:
当您使用 MongoDB Realm Sync 时,将使用您问题中的代码。仅离线使用时不需要它。
所以我的第二个问题:如何使这部分离线?我应该跳过 appId 吗?这行得通吗?
您不需要该代码仅用于离线使用。
这是可能的还是 Realm 真的不适合完全离线工作吗?
它非常适合仅离线工作,如果您想过渡到在线模式,它也非常适合。
如果您想离线使用 Realm,请参阅文档Open a Local (Non-Synced) Realm,其中显示
要打开本地(非同步)领域,请将 Configuration() 对象传递给 Realm.open() 或 new Realm()。以下示例创建一个具有路径属性的 Configuration 对象,该属性定义用于存储数据的本地文件路径。
const config = {
schema: [schemas.TaskSchema, schemas.UserSchema, schemas.ProjectSchema],
path: "./myrealm/data"
};
const realm = await Realm.open(config);
Run Code Online (Sandbox Code Playgroud)
一旦你有了领域变量,你就可以在本地使用领域:
// Query realm for all instances of the "Task" type.
const tasks = realm.objects("Task");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4444 次 |
| 最近记录: |