Spring の MongoTemplate でドキュメントを更新しています
これは、ドキュメントを更新するためのコードです (製品コメントの配列プッシュを作成します)。
public void saveProductComment(String productId,ProductComment comment){
DBObject commentDBO = new BasicDBObject();
mongoTemplate.getConverter().write(comment, commentDBO);
mongoTemplate.updateFirst(
Query.query(Criteria.where("_id").is(productId)),
new Update().push("comment", commentDBO),
Product.class);
}
その後、更新されたドキュメントを取得していますが、更新後に null を返します。すべてのドキュメントを検索するためのコードがあります。
public List<Product> getAllProducts() {
return mongoTemplate.findAll(Product.class, COLLECTION_NAME);
}
問題は、ドキュメントを更新すると、その保存順序が変更されることです(更新後にアルファベット順に並べ替えます)。例えば;
//Before Update
{
name: {...} ,
price: {...} ,
comment: {[...]}
}
{
comment: {[...]},
name: {...} ,
price: {...} ,
}
更新後にドキュメントを取得するにはどうすればよいですか。Spring の MongoTemplate またはその代替ソリューションを使用してドキュメントを見つける方法はありますか? ご清聴ありがとうございました。