Java to Mongo文档日期

时间:2017-02-28 11:15:28

标签: java mongodb date mongodb-query

我通过使用Mongo驱动程序的静态解析方法将pojo转换为文档对象来插入文档。

Document newList = parse(gson.toJson(myPoJo));
collections.insertOne(newList);

此pojo具有Date属性。但是解析方法不会遵循这种类型并将其转换为字符串我认为。所以在插入后我的文档就像下面这样。

 { "auditInfo" : {
        "updatedDate" : "Feb 28, 2000 3:39:20 PM",
   } 
}

问题是我无法在mongo查询中执行日期比较。

请告知如何处理此问题。

2 个答案:

答案 0 :(得分:4)

您可以尝试以下内容。

使用Mongo Java Driver:

$(window).height();

使用Morphia

Morphia负责验证&将mongo数据映射到请求和响应之间。

POJO的:

 MongoClient mongoClient = new MongoClient();
 MongoDatabase db = mongoClient.getDatabase("test");
 MongoCollection col = db.getCollection("input");

 Input input = new Input();
 input.setName("name");
 input.setDate(new Date());

 Document doc = new Document();
 doc.append("name", input.getName());
 doc.append("date", input.getDate())

 col.insertOne(doc);

主:

package org.mongodb.morphia;
import org.bson.types.ObjectId;
import org.mongodb.morphia.annotations.Entity;
import org.mongodb.morphia.annotations.Id;
import java.io.Serializable;
import java.util.Date;

@Entity("input")
public class Input implements Serializable {
    @Id
    private ObjectId id;

    private String name;

    private Date date;
}

答案 1 :(得分:0)

java driver documentation所述,驱动程序接受各种常用的java类型,并在内部将这些类型转换为相应的BSON类型。您必须传递这些受支持类型的对象才能使用。

您的字段updatedDate的值必须为java.util.Date类型。然后,Java驱动程序将能够将其转换为正确的类型org.bson.BsonDateTime