使用 Mongodb java 驱动程序 3 的 $objectToArray 等价物
Equivalent of $objectToArray using Mongodb java driver 3
我正在将 Mongodb 查询从 Java 脚本移动到 Java。对象格式如下:
{
"record": {
"unknownName1": {
"count": 5,
"domain": "domain1"
}, {
...
}, {
"unknownNameN": {
"count": 3,
"domain": "domainN"
}
}
}
Java脚本查询包含以下部分:
[
{
$project: {
record: {
$objectToArray: "$record"
}
}
}, {
$unwind: { "$record"
}, {
$group: {
device: "$record.k"
},
count: {
$sum: "$record.v.count"
},
domain: {
$min: "$record.v.domain"
}
}
]
我已经翻译了上面的内容以使用 Mongodb Java Driver 3 api 并且有以下内容:
List<Bson> query = Arrays.asList(
project(include("record")),
unwind("$record"),
group(computed("device", "$record.k"),
sum("count", "$record.v.count"),
min("domain", "$record.v.domain"))
);
我遇到的问题是我似乎无法使用 Mongodb Java 驱动程序找到与 $objectToArray 等价的对象,随后的求和和最小操作取决于对 k 和使用 $objectToArray.
生成的 v 值
是否有等效的方法可以使用 Mongodb Java 驱动程序(最好是版本 3+)将具有未知键名的对象映射到 $objectToArray 使用的 k 和 v 格式?
以下即可。
project(computed("record", eq("$objectToArray", "$record")))
我正在将 Mongodb 查询从 Java 脚本移动到 Java。对象格式如下:
{
"record": {
"unknownName1": {
"count": 5,
"domain": "domain1"
}, {
...
}, {
"unknownNameN": {
"count": 3,
"domain": "domainN"
}
}
}
Java脚本查询包含以下部分:
[
{
$project: {
record: {
$objectToArray: "$record"
}
}
}, {
$unwind: { "$record"
}, {
$group: {
device: "$record.k"
},
count: {
$sum: "$record.v.count"
},
domain: {
$min: "$record.v.domain"
}
}
]
我已经翻译了上面的内容以使用 Mongodb Java Driver 3 api 并且有以下内容:
List<Bson> query = Arrays.asList(
project(include("record")),
unwind("$record"),
group(computed("device", "$record.k"),
sum("count", "$record.v.count"),
min("domain", "$record.v.domain"))
);
我遇到的问题是我似乎无法使用 Mongodb Java 驱动程序找到与 $objectToArray 等价的对象,随后的求和和最小操作取决于对 k 和使用 $objectToArray.
生成的 v 值是否有等效的方法可以使用 Mongodb Java 驱动程序(最好是版本 3+)将具有未知键名的对象映射到 $objectToArray 使用的 k 和 v 格式?
以下即可。
project(computed("record", eq("$objectToArray", "$record")))