簡體   English   中英

Java到Mongo的文檔日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM