我已经使用基于分区的同步领域一段时间了,但需要升级架构,并且 MongoDB 不再支持基于分区的同步。
我们通常使用javascript程序读取现有的本地realm文件并将数据写入同步的realm。这对于基于分区的领域工作正常,但在尝试打开同步领域时对于灵活的同步领域失败。
objectType must be of type 'string', got ([object Object])
看来,使用灵活的同步领域,必须先创建订阅,然后才能写入同步领域,因此我们添加了初始订阅。
const realmConfig = {
schema: target_realm_schema,
sync: {
user: app.currentUser,
//partitionValue: partitionKey,
flexible: true,
initialSubscriptions: {
update: (subs, realm) => {
subs.add(realm.objects(AppPermission), { name: "AppPermission",});
},
rerunOnOpen: true,
},
newRealmFileBehavior: OpenRealmBehaviorConfiguration,
existingRealmFileBehavior: OpenRealmBehaviorConfiguration,
},
};
知道这个错误可能意味着什么吗?
似乎已经在 MongoDB 数据库中创建了架构,因此 javascript 客户端能够连接并初始化数据库。
好吧,答案很简单 - 使用字符串而不是类名!
subs.add(realm.objects('AppPermission'), { name: "AppPermission",});