mongodb 字符串转bson_将(.net)BsonDocument字符串转换为(java)DBObject

在发布流程中,我需要使用

Java将DBObject插入到mongo db集合中.

我收到对象作为字符串,这已经从一个.NET应用程序传递给我,该应用程序在POCO上使用了article.ToBsonDocument().ToJson().

在我的流程中,在Java中,我尝试使用BasicDBObject doc =(BasicDBObject)JSON.parse(content);但我在日期得到一个com.mongo.util.JSONParseException:

"CreationDate" : ISODate("2013-03-18T08:50:53Z")

我可以改变在C#中生成内容的方式,我可以在java中更改如何写入数据库,我唯一的限制是必须在两个系统之间作为字符串传递.

有什么建议?

编辑感谢下面@Jim Dagg的提示,一些谷歌搜索ISODate和BsonDocument结果是this gem.更改c#代码使用

article.ToBsonDocument().ToJson(new JsonWriterSettings{OutputMode = JsonOutputMode.Strict});

固定它.

最佳答案 ISODate构造函数调用是导致问题的原因.从

an issue on the MongoDB JIRA开始:

The parser accepts these two date formats: seconds ->

"yyyy-MM-dd'T'HH:mm:ss'Z'" or seconds.milleseconds ->

"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" Just add seconds to your $date value

and the aggregation command should work. Here’s the JSON doc that I

had success with: { "aggregate" : "test", pipeline : [ {$match : {

date : { $date : "2012-05-01T12:30:00Z" } } } ] }

如果您删除ISODate构造函数并只是将日期呈现为(例如)“2013-03-18T08:50:53Z”,那么您应该开展业务.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值