javascript - 如何在 Kotlin/JS 中编写 MongoDB 聚合
问题描述
我正在尝试将 Kotlin JS 与 MongoDB 浏览器 SDK 一起使用。SDK 允许使用 JavaScript 中的函数,例如:
const someData = db("database")
.collection("stories")
.aggregate(
[
{
$lookup:
{ from: "person",
localField: "person_id",
foreignField: "_id",
as: "people"
}
}
]
)
这就是我将其转换为 Kotlin 的方式:
val aggregate = mapOf(
"\$lookup" to mapOf(
"from" to "people",
"localField" to "people_id",
"foreignField" to "_id",
"as" to "people"
)
)
val someData = mongodb
.db("database")
.collection("stories")
.aggregate(aggregate)
但我收到以下错误:Uncaught RangeError: Maximum call stack size exceeded
有任何想法吗?
解决方案
Kotlin/JSmapOf
与纯 JavaScript 键值对象不兼容。请改用json函数。
import kotlin.js.json
val aggregate = arrayOf(
json(
"\$lookup" to json(
"from" to "people",
"localField" to "people_id",
"foreignField" to "_id",
"as" to "people"
)
)
)
推荐阅读
- c# - 动态生成组框
- c - 用ebnf语法描述c
- reactjs - 在 Electron 应用程序中使用 Typescript 的 contextBridge.exposeInMainWorld 和 IPC:无法读取未定义的属性“发送”
- java - 如何在 Android 中使用 BroadcastReceiver onReceive 更新 UI?
- php - 在关系 Eloquent 中选择具有相同值的行
- javascript - 将元素移动到数组的前面:Javascript
- javascript - 以数组索引为键的 JSON 字段转换为数组字段
- c# - 我不能直接调用函数
- c++ - 使用 cmake 正确链接库
- java - 如何使用 java 将 zip 文件发送到服务器?