JavaでMongoDBのサブ文書配列に新しい文書を追加するにはどうすればよいですか? exempleについてサブ文書配列に文書を追加する方法 - Java/MongoDB
、{tweetIdを:456}追加ドキュメントの配列に "ツイート":
{
day : 20170209,
hours : {
hour : 20,
tweets : {tweetId : 123 }
}
}
所望の結果:
{
day : 20170209,
hours : [ {hour : 20,
tweets : [{tweetId : 123},{tweetId : 456}]},
{hour : 21,
tweets : [{tweetId : 567},{tweetId : 890}]}
]
}
UPDATE
は申し訳ありませんが、私はなかったの正しく説明すると、つぶやき文書はツイートの配列です。私はより良い理解に上記の例を修正しました。
{
"_id":{
"$oid":"589c5a1047e9062f004b84a3"
},
"hashtag":"BRASIL",
"tweets":[
{
"tweetId":"829661297121845249"
},
{
"tweetId":"829661278352269313"
}
]
}
私は、この配列に新しいTweetIdを追加することができます:唯一の2レベルのコレクションで例えば
、
collection.updateOne(new Document("hashtag", hashtag),
new Document("$push", new Document("tweets", new Document("tweetId", tweetId))));
しかし、アレイは、レベル3(時間であります>ツイート> TweetId)、私はそれを正しく行う方法を見つけることができません。
今はもっとうまく説明されています。
私はあなたのように、モンゴで時系列を実装しようとしているとし「MongoDBにおける時系列の実装」(https://dzone.com/articles/implementing-time-series-in-mongodb)で説明されています。しかし、これは正しい方法ではありません。データベースがメモリ上でドキュメントの移動を開始しないようにするには、ドキュメントの長さを固定する必要があります。次に、配列を使用しないでください。 –
こんにちは、リカルド。実際には、つぶやきを1時間ごとに整理しようとしています。 –
使用しているドキュメントスキーマが正しいことを確認してください。つまり、*ハッシュタグ*の場合は、1つの配列で足が足りない数百万のつぶやきを持つことができます。ドキュメントはMongoDBで最大サイズを持っていることに注意してください。私は、ハットタグのリストを使って、ツイートごとにドキュメントを用意することをお勧めします。次に、Aggregation Frameworkを使用して適切に動作させます。 –