【发布时间】:2017-03-17 10:01:46
【问题描述】:
我有如下收藏。我已通过 user 查询此集合。
{
"user": "username",
"sites": {
"site": "abc",
"keywords": [
{
"keyword": "keyword1",
"dailyranks": [
{
"fild1": "value1"
},
{
"fild2": "value2"
},
{
"fild3": "value3"
},
]
},
{
"keyword": "keyword2",
"dailyranks": [
{
"fild1": "value1"
},
{
"fild2": "value2"
},
{
"fild3": "value3"
},
]
},
],
}
}
我想从集合中获取结果如下,我想获取集合中关键字数组的最后一个元素
[
{
"keyword" : "keyword1"
"fild2" : "value2",
"fild3" : "value3"
},
{
"keyword" : "keyword2"
"fild2" : "value2",
"fild3" : "value3"
},
]
我使用 $project 进行了汇总,但没有成功。帮我解决这个问题。
使用的代码-
BasicDBObject siteObject = new BasicDBObject();
siteObject.append("keywords", "$sites.keywords.keyword");
siteObject.append("lastrank", "$sites.keywords.dailyranks");
BasicDBList aDBList = new BasicDBList();
aaa.add(new BasicDBObject("user", modelLogin.getUSER_NAME()));
ArrayList<BasicDBObject> doc = new ArrayList<>();
doc.add(new BasicDBObject().append("$unwind", "$sites"));
doc.add(new BasicDBObject("$match", aDBList));
doc.add(new BasicDBObject().append("$project", siteObject));
AggregationOutput output = coll.aggregate(doc);
【问题讨论】:
-
你能用你的聚合和 $project 展示你到目前为止所做的尝试吗?
-
@VinceBowdren 问题已更新源代码,谢谢
-
但是里面好像没有$project子句?
-
对不起。我又来了。
-
好的;以及从中得到什么输出?
标签: java arrays mongodb mongodb-java