[英]Java to Mongo Document date
我通過使用Mongo驅動程序中的靜態解析方法將pojo轉換為文檔對象來插入文檔。
Document newList = parse(gson.toJson(myPoJo));
collections.insertOne(newList);
此pojo具有Date屬性。 但是解析方法不會堅持這種類型並將其轉換為字符串,我認為。 因此,插入后,我的文檔如下所示。
{ "auditInfo" : {
"updatedDate" : "Feb 28, 2000 3:39:20 PM",
}
}
問題是我無法在mongo查詢中執行日期比較。
請告知如何處理。
您可以嘗試以下類似方法。
使用Mongo Java驅動程序:
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);
使用Morphia
Morphia負責驗證mongo數據與請求和響應之間的映射關系。
POJO:
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;
}
主要:
public class MorphiaClient {
public static void main(String[] args) {
final Morphia morphia = new Morphia();
morphia.mapPackage("org.mongodb.morphia");
final Datastore datastore = morphia.createDatastore(new MongoClient(), "test");
Input input = new Input();
input.setName("name");
input.setDate(new Date());
datastore.save(input);
}
如Java驅動程序文檔中所述,驅動程序接受各種常用的Java類型並將其內部轉換為相應的BSON類型。 但是,您必須傳遞這些受支持類型的對象才能使它起作用。
您的字段updatedDate
的值必須為java.util.Date
類型。 之后,Java驅動程序將能夠將其轉換為正確的類型org.bson.BsonDateTime
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.