【问题标题】:How to add items to Mongo array using Jongo?如何使用 Jongo 将项目添加到 Mongodb 数组?
【发布时间】:2013-06-05 04:20:44
【问题描述】:

我正在使用 Jongo 来查询 mongodb。问题是,当我尝试将项目添加到数组字段时,我收到错误提示

HTTP 状态 500 - 请求处理失败;嵌套异常是 java.lang.IllegalArgumentException: {$addToSet:{bodyParameters:[ { “第一”:{“体重”:1.0,“身高”:2.0,“腰围”:3.0,“二头肌” :4.0,“胸部”: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;

请告诉我更新有什么问题

【问题讨论】:

  • 您能否提供您正在使用的文档结构?我可以弄清楚您想要实现的目标:bodyParameters 是否已经存在于文档中;您是否要向其中添加多个项目?谢谢。也许尝试在 mongo shell 中直接实现这一点会有所帮助:“无法解析”意味着您的查询无效。

标签: java arrays parsing mongodb jongo


【解决方案1】:

你缺少一个右花括号,它应该是:

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

注意#之后应该有两个右括号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2022-07-02
    • 1970-01-01
    • 2015-06-12
    相关资源
    最近更新 更多