mongodb - 将 MongoDB 查询转换为 Scala
问题描述
我正在尝试将以下 MongoDB 查询转换为等效的 Scala
db.getCollection("shop-items").aggregate([
{
$bucketAuto: {
groupBy: "$prices.avg",
buckets: 50,
output: {
"items" : {
$push: "$$ROOT"
},
"count": { $sum: 1 },
}
}
},
{$addFields: {"start": {$floor :{$multiply: [ { $rand: {} }, "$count"]}}}},
{$project : { _id: 0, items: {$slice: ["$items", "$start", 20]}}},
{$unwind: "$items"}
])
目前我有
collection.aggregate(
List(
bucketAuto("$prices.avg", 100, BucketAutoOptions().output(
push("items", "$$ROOT"),
sum("count", 1)
)),
addFields(
Field("start",
Document(
Document(
Document(
"$multiply" -> Seq(Document("$rand" -> Document(), "$count"),
)
)
)
)
)
),
project(fields(excludeId(), computed("items", Document("$slice" -> Seq("$items", "$start", 10))))),
unwind("$items")
)
)
然而,$multiply
和$slice
文件都是无效的,因为Document
只需要 Seq 的 2 个项目?
我不确定如何创建Document
对象以传递给不具有$multiply
和$floor
?等功能的运算符的查询创建者。
解决方案
推荐阅读
- r - 从数据中估计噪声参数
- network-programming - 从 NFQUEUE 返回 netfilter 后如何强制重新路由数据包
- image - “无法转换:'_Uri'的实例”在flutter web上的cloud firestore最新版本上上传图像时出错
- database - 关于搜索引擎自动完成的问题
- ios - Firebase 可选崩溃未正确显示
- c# - TCP 套接字客户端\服务器请求响应
- c# - 如何根据 xamarin.forms 中的条件更改条目的线条颜色
- r - 在 R 中使用 for 循环保存数据帧
- arrays - 将 ORDS 连接到 Angular
- android - 如何在 Firebase 数据库 android 中增加价值