假设我有一个具有以下结构的包含多个文档的集合:
现在我想创建一个查询,其中我传递一个对象数组,并获取每个元素在文档中出现的计数,类似于这样:
查询输入:
我希望只需一个查询即可完成此操作,传递一个数组。我知道我可以一个一个地轻松完成,而不是使用数组,但这不是目的。
{
_id: "id12345",
objects: ["123","456", "789"]
}
现在我想创建一个查询,其中我传递一个对象数组,并获取每个元素在文档中出现的计数,类似于这样:
查询输入:
["123","321"]
输出结果:{
"123": 1,
"321": 0
}
我希望只需一个查询即可完成此操作,传递一个数组。我知道我可以一个一个地轻松完成,而不是使用数组,但这不是目的。
mapItemsOf
,因为它只接受字段引用或聚合表达式,而不是静态数组。你需要准备聚合表达式。类似这样的东西:project().and(new AggregationExpression() { @Override public Document toDocument(AggregationOperationContext aggregationOperationContext) { $map code here } }).as("keyandcount")
- s7vr