You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:22:07