在默认路径中创建一个新的Realm 实例。
打开不兼容的同步 Realm 时出现错误。
在提供的路径中创建一个新的Realm实例。
首次创建 Realm 时必需。
如果无法在提供的路径打开 Realm,则会出现错误。
打开不兼容的同步 Realm 时出现错误。
使用提供的配置创建新的Realm 实例。如果config.path中尚不存在 Realm(如果未提供,则为 Realm.defaultPath ),则此构造函数将使用提供的config.schema (本例中为必填项)创建该 Realm。 否则,该实例将从该路径的文件访问现有 Realm。 在这种情况下, config.schema是可选的或没有更改,除非config.schemaVersion递增,在这种情况下,Realm 将自动迁移以使用新模式。 对于基于查询的同步,需要config.schema 。 如果未定义config.schema ,则会引发异常。
首次创建 Realm 时必需。
如果提供的配置中的任何内容无效,则出现错误。
打开不兼容的同步 Realm 时出现错误。
Readonly
同步会话(如果这是同步 Realm)
Static
默认路径指示此 Realm 是否已关闭。
true
如果已关闭,则为false
。
2.1.0
指示此 Realm 是否包含任何对象。
true
如果为空,则为false
,否则为空。
1.10.0
指示此 Realm 是否在内存中打开。
true
如果此 Realm 位于内存中,则为false
。
指示此 Realm 是否正在迁移。
true
如果正在迁移,则为false
否则
12.3.0
指示此 Realm 是否处于写事务(write transaction)中。
true
如果处于写事务(write transaction)中,否则为false
。
1.10.3
指示此 Realm 是否以只读方式打开。
true
如果此 Realm 为只读,则为false
。
0.12.0
存储此 Realm 的文件的路径。
一个字符串,其中包含存储此 Realm 的文件的路径。
0.12.0
构造此 Realm 时在配置中提供的模式的规范化表示。
描述此 Realm 中所有对象的CanonicalObjectSchema数组。
0.12.0
Realm 的当前模式版本。
此 Realm 的模式版本,形式为number
。
0.12.0
最新的 Flexible Sync 订阅集。
一个SubscriptionSet对象。
如果未为此应用启用 Flexible Sync,则会出现错误。
为指定的 eventName 添加侦听器回调。
应导致调用回调的事件的名称。
发生变更事件时调用的函数。 对于每个事件,每个回调只会调用一次,无论该事件被添加多少次。
如果提供的事件 eventName 无效、Realm 已关闭或回调不是函数,则会出现错误。
启动写事务(write transaction)。
进行事务时,强烈建议进行错误处理。 如果不处理错误,数据可能会不一致。 错误处理通常涉及取消事务。
如果已处于写事务(write transaction)中,则出现错误
realm.beginTransaction();
try {
realm.create('Person', { name: 'Arthur Dent', origin: 'Earth' });
realm.create('Person', { name: 'Ford Prefect', origin: 'Betelgeuse Five' });
realm.commitTransaction();
} catch (e) {
realm.cancelTransaction();
throw e;
}
将此 Realm 中的所有字符串列替换为字符串枚举列,并压缩数据库文件。
无法从写事务(write transaction)中调用。
如果存在其他Realm实例,则不会进行压缩。
正在进行压实时,其他线程或进程打开数据库的尝试将等待。
请注意,压实所需的资源与数据库中的实时数据量成正比。压实的工作原理是将数据库内容写入临时数据库文件,然后用临时数据库替换数据库。
true
如果压缩成功,则返回false
。
删除 Realm 模型,包括其所有对象。 如果在迁移函数外部调用,schema和schemaVersion会被更新。
模型名称。
删除所有事件侦听器(仅限于事件 eventName,如果提供)。
Optional
eventName : RealmEventName应删除其侦听器的事件的名称。
提供无效的事件 eventName 时出现错误。
删除指定事件 eventName 的侦听器回调。
事件名称。
之前通过addListener方法添加为此事件的侦听器的函数。
如果提供的事件 eventName 无效、Realm 已关闭或者回调不是函数,则会出现错误。
在写事务(write transaction)中同步调用提供的回调。如果事务内部发生异常,您将丢失该事务中的更改,但 Realm 本身不会受到影响(或损坏)。 更准确地说,将自动调用beginTransaction和commitTransaction 。 如果在事务期间抛出任何异常,则将调用cancelTransaction而不是commitTransaction ,并且该异常将被重新抛出给write的调用者。
回调的返回值。
使用给定配置写入 Realm 的压缩副本。
目标文件不能已存在。 支持同步和非同步 Realm 之间的所有转换,并将根据描述所需输出的配置参数执行。
请注意,如果从写事务中调用此方法,则写入当前数据,而不是提交上一个写事务时的数据。
描述输出 Realm 的 Realm 配置。
Static
复制任何 Realm 文件(即 *.realm
)从应用程序目录复制到应用程序的文档目录中,以便 Realm 可以打开和使用它们。 如果该文件已存在于文档目录中,则不会覆盖该文件,因此可以安全地多次调用该文件。
应在打开 Realm 之前调用此函数,以便将捆绑的 Realm 文件移动到可以写入的位置。
// Given a bundled file, example.realm, this will copy example.realm (and any other .realm files)
// from the app bundle into the app's documents directory. If the file already exists, it will
// not be overwritten, so it is safe to call this every time the app starts.
Realm.copyBundledRealmFiles();
const realm = await Realm.open({
// This will open example.realm from the documents directory, with the bundled data in.
path: "example.realm"
});
这仅适用于 React Native。
如果发生 I/O 错误或未实现方法,则返回错误。
Static
创建模板对象为 Realm 模型类创建模板对象,其中所有可选字段均未定义,所有必填字段均具有给定数据类型的默认值,该值要么是模式中默认属性设置的值,要么是数据类型的默认值,如果模式未指定 1,即 0、false 和 ""。
描述应创建的对象的模式。
Static
删除给定配置的 Realm 文件。
正在删除的 Realm 的配置。
如果提供的配置中的任何内容无效,则出现错误。
Static
存在检查磁盘上是否已存在 Realm。
Realm 的路径。
true
如果设备上存在该 Realm,则返回false
。
如果提供的路径中的任何内容无效,则出现错误。
检查磁盘上是否已存在 Realm。
Realm 的配置。
true
如果设备上存在该 Realm,则返回false
。
如果提供的配置中的任何内容无效,则出现错误。
Static
打开使用 Promise 异步打开默认 Realm。
在 Realm 实例可用时,将使用 Realm 实例来解决的 Promise。
使用 Promise 异步打开 Realm。 如果 Realm 已同步,则在可用之前将完全同步。
Realm 的路径。
在 Realm 实例可用时,将使用 Realm 实例来解决的 Promise。
使用 Promise 异步打开 Realm。 如果 Realm 已同步,则在可用之前将完全同步。 对于基于查询的同步,需要Configuration.schema 。 如果未定义Configuration.schema ,则会引发异常。
Realm 的配置。
在 Realm 实例可用时,将使用 Realm 实例来解决的 Promise。
如果提供的配置中的任何内容无效,则出现错误。
Static
schemaStatic
设置日志级别。
记录器要使用的日志级别。 默认值为info
。
Optional
类别: "Realm" | "Realm.Storage" | "Realm.Storage.Transaction" | "Realm.Storage.Transaction" | "Realm.Storage.Query" | "Realm.Storage.Object" | "Realm.Storage.Notification" | "Realm.Sync" | "Realm.Sync.Client" | "Realm.Sync.Client.Session" | "Realm.Sync.Client.Changeset" | "Realm.Sync.Client.Network" | "Realm.Sync.Client.Reset" | "Realm.Sync.Server" | "Realm.App" | "Realm.SDK"要为其设置日志级别的类别。 如果省略,则为所有类别设置日志级别 ( "Realm"
)。
可以在应用程序的生命周期内更改日志级别。
12.0.0
Realm.setLogLevel("all");
Static
设置记录器设置记录器回调。
记录器调用的回调。 默认回调使用console.log
、 console.warn
和console.error
,具体取决于消息级别。
在打开第一个 Realm 之前,需要设置记录器回调。
12.0.0
Realm.setLogger(({ category, level, message }) => {
console.log(`[${category} - ${level}] ${message}`);
});
设置记录器回调。
记录器调用的回调。 默认回调使用console.log
、 console.warn
和console.error
,具体取决于消息级别。
在打开第一个 Realm 之前,需要设置记录器回调。
12.0.0
改为传递采用单个对象参数的回调。
Realm.setLogger((level, message) => {
console.log(`[${level}] ${message}`);
});
Static
shutdown关闭所有 Realm,取消所有待处理的 Realm.open调用,清除内部缓存,重置记录器并收集垃圾。 调用此方法可释放事件循环,并允许 Node.js 执行从容退出。
使用TypeDoc生成
Realm 数据库。