如何在Realm数据库中使用JavaScript实现NOT IN操作
在Realm中实现NOT IN查询
嘿,我来帮你搞定Realm里的NOT IN查询需求!其实Realm本身并没有直接提供NOT IN这个现成的运算符,但我们可以通过NOT关键字配合IN条件来实现完全一样的效果,不同开发平台的具体写法略有差异,我给你整理了常用场景的代码示例:
Swift SDK
如果你用的是Swift版本的Realm,有两种常用写法:
方式1:使用NSPredicate
import RealmSwift let excludedIds = ["1", "2", "3"] let predicate = NSPredicate(format: "NOT id IN %@", excludedIds) let users = try! Realm().objects(User.self).filter(predicate)
方式2:使用Realm新的Query DSL(更直观)
import RealmSwift let excludedIds = ["1", "2", "3"] let users = try! Realm().objects(User.self).where { !$0.id.in(excludedIds) }
Kotlin/Java SDK
对于Kotlin或者Java开发者,写法如下:
Kotlin DSL风格
import io.realm.kotlin.Realm import io.realm.kotlin.ext.query val excludedIds = listOf("1", "2", "3") val realm = Realm.open(configuration) val users = realm.query<User>() .not() .`in`("id", excludedIds) .find()
字符串查询风格(兼容Java)
val excludedIds = listOf("1", "2", "3") val users = realm.query(User::class.java, "NOT id IN $0", excludedIds).find()
JavaScript/TypeScript SDK
如果是前端用Realm JS,代码可以这么写:
import Realm from 'realm'; const excludedIds = ["1", "2", "3"]; const users = realm.objects('User').filtered('NOT id IN $0', excludedIds);
核心逻辑都是一致的:先定义要排除的ID列表,然后用NOT对id IN [排除列表]这个条件取反,就能筛选出ID不在目标列表里的用户数据啦。
内容的提问来源于stack exchange,提问作者su_sundariya
相关产品推荐
相关产品推荐

