私は次のようなコレクションを持っています。このコレクションにユーザーと問い合わせています。MongoDB Java Driverの配列フィールドを使用したプロジェクト
{
"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"
},
]
にキーワード配列の最後の要素を取得したいが、didnのうまくいきません。これを整理するのを助けてください。
コードは、集計の下に試すことができ
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);
同等のJavaのあなたがあなたの集約と$のプロジェクトで、これまでに試したかを示すことはできますか? –
@VinceBowdren質問はソースコード に更新ありがとう –
しかしそこに$ project節はないようですか? –