java - MongoDB 从 BasicDBObject 获取日期

标签 java mongodb

我从 MongoDB 游标返回数据 BasicDBObject ,其 toString() 返回以下数据:

{ 
    "_id" : { "$oid" : "52b8775ebf552f39c2ae5cf2"} , 
    "patient" : {
        "$ref" : "patients" , 
        "$id" : "52b848ae65b9f1856f630dd8"} , 
    "doctor" : { 
        "$ref" : "doctors" , 
        "$id" : "5294f0a76297040bf2aa6b53"} , 
    "type" : "opd" , 
    "title" : "Not feeling well" , 
    "start" : { "$date" : "2013-12-24T00:30:00.000Z"} , 
    "end" : { "$date" : "2013-12-24T00:30:00.000Z"} , 
    "reference_doctor_id" :  null 
}

我尝试获取“start”字段(Date)值,但抛出java.lang.NullPointerException

我的Java代码:

final BasicDBObject data = (BasicDBObject) rs.next(),
patient = (BasicDBObject) ((DBRef) data.get("patient")).fetch();
final JsonObject resp = new JsonObject();
System.out.println("Appointments : \n"+data.toString());
resp.putValue("start", data.getDate("start"))
    .putValue("end", data.getDate("end"))
    .putValue("_id", (data.getObjectId("_id")).toString())
    .putValue("type", data.get("type"))
    .putValue("name", patient.get("name"))
    .putValue("patient", (patient.getObjectId("_id")).toString());

问题:如何从文档中提取"start""end"字段值?

Java 驱动程序:2.4.x

最佳答案

您可以使用org.joda.time.DateTime,

new DateTime(data.get("start"))

关于java - MongoDB 从 BasicDBObject 获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749167/

相关文章:

java - 关于Java并发的概念问题

c# - 将 MIDI 事件添加到时钟 - Java

Node.js 显示来自 Mongo 的 GridFS 的图像

mongodb - 如何更新 Mongoose 中的嵌入文档?

java - 静电的正确使用

java - 从 Oracle DB 检查已提交的事务

Java util.Scanner 无法立即识别用户输入

java - 有没有更简单的方法来定义对象中的对象?

node.js - Sails.js 升级到 v1 反向区分大小写的查询

java - 如何将聚合结果映射到java pojo