私はThymeleaf poweredページから入手した情報からデータベース情報を更新しようとしています。基本的に各ページはMongoDBからの単一の文書を使用して構築されます。実際のページはそれほど複雑ではないので、一部のユーザーにこのページを変更させたいと思っています。このJavaScriptプラグインを使ってテキストエリアのdivを作成し、Ajax(http://www.dyve.net/jquery/?editable)経由でサーバーに送信しました。Springを使用してMongoDBにある配列を更新するにはどうすればよいですか?
ドキュメントには一意のフィールドしかないので、htmlのフィールドidをproduct-descriptionのようなmongodbフィールドの名前に設定することができます。私は経由IDを送信することができ、更新は本当に簡単です:
idはドキュメントIDコードがあるpublic boolean updateValueWithKey(String id, String k, String v) {
Criteria c = Criteria.where(id).is(id);
Query q = new Query().addCriteria(c);
Update u = u.set(k, v);
WriteResult w = operations.updateFirst(q, u, clazz);
return w.wasAcknowledged();
}
は、kは、フィールド名(キー)とVの値です。
しかし、ドキュメントの特定の部分に配列があることに気がつきましたが、配列の特定のフィールドをどのように更新できるか分かりません。
Updateクラスには、atPositionというメソッドを持つPushOperatorBuilderという内部クラスがあります。ドキュメントには、「与えられた{@ literal position}に値を追加する」という記述があります。
しかし、私は実際にそれを使用する方法を理解していません、インスタンス化されたUpdateオブジェクトからそのメソッドに到達しようとすると、エラーが発生しました。
ヘルプ?
で
何か
私の謝罪。私は答えを更新しました。確認してください。 – Veeram
Welp(私の全文書を空にしたもの)xD あなたが投稿した文書を読んでチェックアウトするのにしばらく時間がかかるでしょう。あなたの答えが変わったのは、配列内に3つのフィールドがありますが、PushOperatorBuilderにはキー/値の更新オプションがないようです。 –