我很难弄清楚如何为下面的聚合查询编写spring数据实现。我的问题的一些背景可以找到here
db.asset.aggregate([{$unwind:"$folderIds"}, {$group:{_id: "$folderIds",assets:{$push: {assets_id:"$_id",display_name:"$displayName"}}}}])
到目前为止我已经得到了以下代码
AggregationOperation unwind = Aggregation.unwind("folderIds");
AggregationOperation groupFolderIds = Aggregation.group("folderIds")
.push(new BasicDBObject().put("assetId", "$_id")).as("assets");
Aggregation aggregation = Aggregation.newAggregation(unwind, groupFolderIds);
AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "asset", Map.class);
我知道.push()的论点必须修复,但我不知道如何。我想从结果中的资产文档中提取一些字段。感谢帮助。谢谢。
答案 0 :(得分:2)
如果要向var array = [["Chinese"],["Italian"],["Thai"]]
var valArray: [String] = []
for value in array
{
for innerValue in value
{
valArray.append(innerValue)
}
}
print(valArray)
提供BasicDBObject,请使用$push
方法添加其他字段:
.append
使用&#34;键入&#34>时也要注意输出,您使用的类类型必须匹配&#34;输出&#34;的结构。而不是&#34;输入&#34;正在使用的课程当然会有所不同。