我通过使用Mongo驱动程序的静态解析方法将pojo转换为文档对象来插入文档。
Document newList = parse(gson.toJson(myPoJo));
collections.insertOne(newList);
此pojo具有Date属性。但是解析方法不会遵循这种类型并将其转换为字符串我认为。所以在插入后我的文档就像下面这样。
{ "auditInfo" : {
"updatedDate" : "Feb 28, 2000 3:39:20 PM",
}
}
问题是我无法在mongo查询中执行日期比较。
请告知如何处理此问题。
答案 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
。