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

如何在DenoDB中使用IN运算符进行数据查询?

解决DenoDB IN查询问题及替代ORM推荐

DenoDB的可行解决方案

如果常规的.where("departure", "in", ['Tokio','Berlin'])写法不生效,试试以下两种方法:

方法1:手动绑定参数的IN条件

直接在where条件中写IN语句并绑定参数,参数数量固定时:

await Flight.where("departure IN (?, ?)", "Tokio", "Berlin").all();

如果参数数量不确定,可动态生成占位符:

const cities = ["Tokio", "Berlin"];
const placeholders = cities.map(() => "?").join(",");
await Flight.where(`departure IN (${placeholders})`, ...cities).all();

方法2:使用raw注入原生SQL片段

通过DenoDB提供的raw方法直接构造IN条件:

import { raw } from "https://deno.land/x/denodb/mod.ts";

const cities = ["Tokio", "Berlin"];
await Flight.where(raw`departure IN ('${cities.join("','")}')`).all();

适配Deno的替代ORM推荐

如果DenoDB确实不支持该功能,这些ORM可以满足IN查询需求:

  • Prisma:完全支持Deno,查询语法直观,IN查询示例:
    await prisma.flight.findMany({
      where: {
        departure: { in: ["Tokio", "Berlin"] }
      }
    });
    
  • Drizzle ORM:轻量高性能,原生支持Deno,IN查询需使用inArray辅助函数:
    import { inArray } from "https://deno.land/x/drizzle-orm/mod.ts";
    
    await db.select().from(flights).where(inArray(flights.departure, ["Tokio", "Berlin"]));
    
  • MikroORM:支持Deno环境,具备完整的查询API,IN查询写法:
    await em.find(Flight, { departure: { $in: ["Tokio", "Berlin"] } });
    

内容的提问来源于stack exchange,提问作者hansTheFranz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:20:46