2

Jongo を使用して mongodb にクエリを実行しています。問題は、配列フィールドにアイテムを追加しようとすると、次のエラーが表示されることです

HTTP ステータス 500 - リクエストの処理に失敗しました。ネストされた例外は java.lang.IllegalArgumentException: {$addToSet:{bodyParameters:[ { "first" : { "weight" : 1.0 , "height" : 2.0 , "waist" : 3.0 , "biceps" : 4.0 , "chest" です: 5.0 , "前腕" : 6.0 , "手首" : 7.0 , "首" : 8.0 , "腰" : 9.0 , "臀部" : 10.0 , "すね" : 11.0} , "秒" : "20130609"}]}解析できません

私の方法はそのように見えます

public void updateBodyParameters(Profile profile) {
        getCollection().update("{_id:#}", profile.getUsername()).with(
                "{$addToSet:{bodyParameters:#}", profile.getBodyParameters()
        );
    }

本体パラメータはこれを含むクラスです

public class Tuple<E, T> implements Serializable {
private E first;
private T second;

そして、それは次のように作成されます

ArrayList<Tuple<BodyParameters, String>>

BodyParameters クラスにはフィールドが含まれています

private double weight;
private double height;
private double waist;
private double biceps;
private double chest;
private double forearm;
private double wrist;
private double neck;
private double hip;
private double buttocks;
private double shin;

アップデートの問題点を教えてください

4

1 に答える 1

4

閉じ中括弧がありません。次のようにする必要があります。

"{$addToSet:{bodyParameters:#}}", profile.getBodyParameters()

# の後に2 つの右中括弧が必要であることに注意してください。

于 2013-07-03T12:43:55.913 に答える