簡體   English   中英

如何在mongo中插入帶有日期的文檔?

[英]How to insert a document with date in mongo?

我們正在嘗試插入一個具有當前日期的文檔作為它的字段。 我們正在使用 mongodb 的 eclipse 插件在 java 中編寫。 我們想執行 mongo 的Date()命令來從 mongo 而不是從 java 中獲取日期。

如何執行這個 mongo 查詢?

db.example.insert({"date":new Date()})

我在預覽問題中發現了這個問題,但答案沒有幫助

關聯

標准驅動程序采用java.util.date類型並序列化為 BSON 日期。 所以用一個集合對象來“示例”

Date now = new Date();

BasicDBObject timeNow = new BasicDBObject("date", now);
example.insert(timeNow);

如果您正在尋找一種在操作中使用“服務器”時間的方法,可以使用$currentDate運算符,但這適用於“更新”,因此您需要一個“更新插入”操作:

 BasicDBObject query = new BasicDBObect();
 BasicDBObject update = new BasicDBObject("$currentDate",
     new BasicDBObject("date", true)
 );

 example.update(query,update,true,false);

由於這實際上是一條更新語句,因此如果您打算將其僅用作插入,則需要注意您實際上並未匹配任何文檔。 因此,最好確保您的“查詢”包含唯一信息,例如新生成的_id或同樣唯一的信息。

你可以嘗試這樣的事情:

db.example.insert({"date":ISODate("2016-03-03T08:00:00.000")});

用這個:

db.example.insert({"date":new Date(Date.now())});

我在使用 Date() 時注意到了一個關鍵區別,如下所示。

{ dateWhenCreated : Date() }

對比

{ dateWhenCreated : new Date() }

注意第二種用法中的“new”關鍵字。 第一種用法將數據“作為字符串”加載,而第二種用法將日期加載為具有日期數據類型的字段。

這可能會影響您的排序能力 - 存儲為字符串的日期的排序方式與存儲為日期的日期不同。

根據這里的 mongodb 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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