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