<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用dateToString 方法進行轉換 並且通過format指定轉換日期格式
Integer userId=aaa; GroupOperation groupOperation = Aggregation.group("day").sum("money").as("todayIncome").count().as("todayPayCount"); Aggregation aggregation = Aggregation.newAggregation( Aggregation.match(Criteria.where("userId").is(userId)), project("userId","money").andExpression("{$dateToString: {date: { $add: {'$createTime', [0]} }, format: '%Y%m%d'}}", new Date(28800000)).as("day"), groupOperation, sort(Sort.Direction.ASC, "_id") );
注意:
1.必須使用 $dateToString: {date: { $add: 通過求和進行date資料轉換 如果去掉後面的會報解析錯誤
org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 16006 (Location16006): 'can't convert from BSON type long to Date' on server localhost:50000. The full response is {"ok": 0.0, "errmsg": "can't convert from BSON type long to Date", "code": 16006, "codeName": "Location16006"}; nested exception is com.mongodb.MongoCommandException: Command failed with error 16006 (Location16006): 'can't convert from BSON type long to Date' on server localhost:50000. The full response is {"ok": 0.0, "errmsg": "can't convert from BSON type long to Date", "code": 16006, "codeName": "Location16006"}
2.必須增加 new Date(28800000) 的時間 原因是增加了8個時區的偏移量
在熟悉monggoDB的時候遇到了時間查詢的問題程式碼如下:
import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.MongoClient; import com.mongodb.ServerAddress; /** * mongo 資料庫直連測試 * @author fuhao * */ public class MongDBTest { public static void main(String[] args) throws Exception { List<ServerAddress> list = new ArrayList<ServerAddress>(); // 連線資料庫 ip 埠 list.add(new ServerAddress("10.39.XXX.XXX", 27010)); MongoClient mongoClient = new MongoClient(list); //資料庫名稱 DB psdoc = mongoClient.getDB("qa_db_center"); //表明 DBCollection collection=psdoc.getCollection("base_user_info"); BasicDBObject queryObject = null; // 時間查詢 資料庫看到的時間不是真實時間 加8小時後才是正確的時間 DBObject dbObject = new BasicDBObject(); String startDate = "2018-03-29 15:59:06"; String endDate = "2018-03-29 16:30:46"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dbObject.put("$gte", sdf.parse(startDate)); dbObject.put("$lte", sdf.parse(endDate)); queryObject = new BasicDBObject(); queryObject.put("create_time",dbObject); DBCursor find = collection.find(queryObject); while (find.hasNext()) { DBObject next = find.next(); Object real_name = next.get("real_name"); Object mobile = next.get("mobile"); Object create_time = next.get("create_time"); String str = sdf.format(create_time); System.out.println(real_name +"====="+mobile +"====="+str); } System.out.println("結束"); } }
請求頁面 預設頁 https://blog.csdn.net/qq_27292113/article/details/91876121 【標題】:MongoDB中的日期查詢的坑_天馬行空-的部落格-CSDN部落格_mongodb query 日期 【內容】:
在熟悉monggoDB的時候遇到了時間查詢的問題程式碼如下:
上面的程式碼中查詢時間 按mysql 的流程應該查詢到 2018-03-29 15:59:06 到2018-03-29 16:30:46 這個區間的資料,但是mongoDB不同,因為mongo中的date型別以UTC(Coordinated Universal Time)儲存,就等於GMT(格林尼治標準時)時間。而系統時間使用的是GMT+0800時間,兩者正好相差8個小時。也就是用java 程式碼插入的時間型別的值都會被減8小時。這個坑挺大的不注意很容易出事。
展示一下對比資料便於理解:
上面的圈是查詢的條件對應資料庫中的資料是2018-03-29T08:30:36.310Z 如下圖,但是在java中你寫2018-03-29 08:30:36這個時間肯定查不到資料
對比得出資料庫中看到的時間和實際時間差8小時,但是查詢出來的結果時間還是會被轉換回來(不以時間為條件查詢的話基本沒什麼問題)。
記錄一下mongoDB中查詢區間時間的執行語句:
db.getCollection('base_user_info').find({"create_time":{"$gte":ISODate("2018-03-29 07:59:06"),"$lte":ISODate("2018-03-29 08:30:46")}});
base_user_info :表名 create_time:欄位名
比較符號對應列表
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45