问题标签 [mongo-jackson-mapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 如果使用 mongo-jackson-mapper 不存在对象,如何将它插入到集合中?
我找不到这个简单操作的 API。我需要做的是插入一个新文档,如果它不存在,所以我正在尝试使用“upsert”:
我需要插入的对象是“用户”,但 update() 签名只接受 DBQuery 实例。
谢谢,迈克尔
java - 用杰克逊以两种不同的方式序列化一个类
在我们的一个项目中,我们使用 java webapp 与 MongoDB 实例对话。在数据库中,我们使用DBRefs
来跟踪一些对象关系。我们使用杰克逊(使用 mongodb-jackson-mapper)对 POJO 对象进行(反)序列化。
但是,我们使用相同的 POJO 然后(反)序列化到外部世界,我们的前端处理呈现 JSON。
现在,我们需要一种外部世界的序列化方法来包含来自 a 的引用对象DBRef
(以便 UI 可以呈现完整的对象),而我们显然希望将其DBRef
写入数据库,而不是整个对象。
现在我写了一些未经测试的静态嵌套类代码:
理想情况下,我想要一种对此进行注释的方法,以便我可以(反)序列化它,无论是否有 getFoo() 结果,可能取决于某些配置对象。这可能吗?你有没有更好的方法来做这件事?
maven - 从 RESTEasy 方法调用 mongo-jackson 映射器时出错
这几天一直在用这个。我有一个 java servlet,用 maven 构建,将部署到 Jetty(旧版本)。这是 Jetty 上的 RESTful Web 服务,使用 RESTEasy 和 Jackson 以及 Jackson Mongo Mapper 将我连接到 MongoDB。
我可以很好地从 maven/jetty 运行应用程序(使用 mvn jetty:run),对于不使用 Jackson Mongo Mapper/Jackson 位的查询,它会按预期返回 JSON。但是,当我发送触发杰克逊和映射器的请求时,我首先收到此错误:
当我第二次提交(以及所有后续请求)时,我收到此错误:
据我所知,我已经正确设置了所有依赖项,尽管我将在问题末尾包含我的 web.xml 和 pom.xml。如果它不是依赖项,那么我想到我的 bean (BillItem.class) 的传递方式可能存在一些问题。我对 Java 比较陌生,所以这很容易成为一个愚蠢的错误,而不是与我正在尝试实现的特定堆栈相关的东西......关于发生了什么的任何想法?
这是我的 web.xml:
这是我的 pom.xml:
下面的最后一行是引发错误的违规调用:
json - MongoDB ObjectId 的 Jackson JSON 反序列化
好的,首先这是从我的 Web 服务返回的 JSON。在我的 Android ContentProvider 中的 ResponseHandler 中进行异步查询后,我试图将其反序列化为 pojos。
起初,我对所看到的问题感到困惑,因为我在我的 Web 服务中使用了与我在 Android 应用程序中相同的 Jackson 注释 bean——但后来我意识到该owners
对象从未在示例 JSON 中发送到我的 Web 服务(它跳过我的 Web 服务上的 POJO,并通过来自 DAO 的原子更新添加到 mongoDB 中的文档中)。
那么好吧。到目前为止,Jackson 不必处理该owners
对象,现在它被它窒息了,即:
JsonMappingException
:无法反序列化[char position where you can find and ] 通过引用链 [包含所有者类的我的 Jackson bean 的路径]处java.lang.String
的 令牌实例START_OBJECT
"userID"
"paidID"
我的 Jackson bean 有一个包装器,这就是“exampleList”的全部内容:
然后是实际的Example
课程:
最后,ResponseHandler 中的代码全部失败(第二行产生 JsonMappingException):
我有一种感觉,问题是杰克逊仍然不知道如何映射那些$oid
mongoDB ObjectIds。MongoJacksonMapper 库应该通过提供@ObjectId
注释和配置 ObjectMapper 以使用该库的方法来帮助实现这一点,但它仍然无法正常工作。出于某种原因,它仍在寻找作为字符串的 userID 或paidID,而不是 ObjectId。有任何想法吗?
java - Jackson - 用根对象包装对象列表
我的控制器返回一个 MyObj 对象列表(使用@ResponseBody)
返回的 JSON 如下所示:
我想包装这个 JSON,所以它会返回如下内容:
根据我的阅读,我需要启用 SerializationConfig.Feature.WRAP_ROOT_VALUE 或(?)在我的控制器顶部使用 @JsonRootName("data") 。
还尝试了@XmlRootElement,似乎没有任何效果。知道用根名称包装对象列表的正确方法是什么吗?
java - 用 Jongo 解组聚合结果
我正在使用MongoDB聚合框架查询一个文档,结果如下:
从上面的结果可以看出,查询在 mongoDB shell 中工作,但是我在使用 Jongo 获取结果时遇到了问题:
主要问题似乎是 Jongo 不允许我使用AggregationOutput
?他想要Aggregation
...但找不到任何关于如何使用它的示例
编辑:
我有点沮丧,我不能让 Jongo 使用聚合。DBObjects
我必须按照 MongoDB Java 驱动程序中指定的方式编写查询,但代码看起来真的很难看..
EDIT2: 只是为了完成信息,这是我与 Jongo 一起使用的原始聚合,它无法解组为 ResultObject
}
java - 使用 Jackson 与 Java Mongo DBObject 进行高效 POJO 映射
虽然类似于Convert DBObject to a POJO using MongoDB Java Driver我的问题是不同的,因为我对使用 Jackson 进行映射特别感兴趣。
我有一个要转换为 Mongo DBObject 实例的对象。我想使用 Jackson JSON 框架来完成这项工作。
一种方法是:
但是,根据https://github.com/FasterXML/jackson-docs/wiki/Presentation:-Jackson-Performance ,这是最糟糕的方法。所以,我正在寻找替代方案。理想情况下,我希望能够连接到 JSON 生成管道并动态填充DBObject
实例。这是可能的,因为在我的例子中,目标是一个BasicDBObject
实例,它实现了 Map 接口。因此,它应该很容易融入管道。
现在,我知道我可以使用该ObjectMapper.convertValue
函数将对象转换为 Map,然后BasicDBObject
使用该类型的映射构造函数递归地将映射转换为实例BasicDBObject
。但是,我想知道是否可以消除中间映射并BasicDBObject
直接创建。
请注意,因为 aBasicDBObject
本质上是一个映射,所以相反的转换,即从标量DBObject
到 POJO 是微不足道的并且应该非常有效:
最后,我的 POJO 没有任何 JSON 注释,我希望它保持这种方式。
mongo-jackson-mapper - 这个查询是有效的 mongo jackson mapper 查询吗?
我正在尝试通过电子邮件或数据库中的用户名获取用户,想象用户可以使用唯一别名或电子邮件地址登录的功能,我认为以下方法可行,但它没有,
我有什么遗漏吗?
mongodb - 在 mongodb/jackson 驱动程序用户 ID 列表中查找记录集?
再一次,我花了很多令人沮丧的时间试图找出对 mongodb 和 jackson 客户端来说听起来很简陋但不成功的东西。叹息!所以我有一个用户 ID 列表,我试图找到与这些 ID 匹配的用户,但似乎我无法让它工作,我尝试了以下所有查询,但没有一个返回任何数据。非常感谢任何帮助:
输出:
mongodb数据: