mongodb中根據(jù)時(shí)間過濾進(jìn)行查詢的操作方法
mongodb中簡單的根據(jù)時(shí)間過濾進(jìn)行查詢
目的:查詢當(dāng)某天的文檔信息
db.getCollection('test').find ({ "name" : { "$regex" : "王" }, "is_history" : 0, "adddate":{"$gte":ISODate("2018-01-02T00:00:00Z"),"$lte":ISODate("2018-01-03T00:00:00Z")} }, { name:1,adddate:1,sex:1,certcode:1,certnumber:1,istomysql:1 } )
mongodb的語法,第一個(gè)大括號里面是:表示過濾條件
第二個(gè)大括號里面是 :控制顯示的字段
里面有一個(gè)adddate這個(gè)過濾條件是如何按照時(shí)間來進(jìn)行過濾查找$gte是大于等于 $lte是小于等于
補(bǔ)充:如何根據(jù)日期過濾/查找MongoDB中的記錄
問題:如何根據(jù)日期過濾/查找MongoDB中的記錄
我在 MongoDB 數(shù)據(jù)庫中有一個(gè)集合,其中包含一些數(shù)據(jù),并希望根據(jù)日期(忽略時(shí)間)過濾和查找數(shù)據(jù)。
樣本數(shù)據(jù)
{ "_id" : ObjectId("563a38173c2ab9248c02d89e"), "jobId" : "oAEKMcCIJRIAAAFQbrAR6NDd", "jobName" : "CheckSessions", "jobDesc" : "Checks and deletes expired session data", "jobType" : "Job", "startTime" : "2015-11-04 00:00:01", "endTime" : "2015-11-04 00:00:01", "domainName" : "root", "recurrencePeriod" : "60", "recurrencePeriodDesc" : "HOURS(1)" } { "_id" : ObjectId("563a38173c2ab9248c02d89f"), "jobId" : "C6wKMcCIJXoAAAFQm78R6NCm", "jobName" : "CheckSessions", "jobDesc" : "Checks and deletes expired session data", "jobType" : "Job", "startTime" : "2015-11-03 23:00:00", "endTime" : "2015-11-03 23:00:01", "domainName" : "root", "recurrencePeriod" : "60", "recurrencePeriodDesc" : "HOURS(1)" }
我使用以下命令來獲取大于特定日期的數(shù)據(jù),但它沒有給我任何結(jié)果。 startTime 和 endTime 都是 EST 格式。不知道我錯(cuò)過了什么。請指導(dǎo)。
db.jobs.find({"startTime" : { $gt : new Date("2015-11-03")}});
解答
答:可以簡單的通過字符串比較來查詢。
首先,確保 startTime 列上的索引
db.test.ensureIndex({startTime:1})
以下命令在_id:ObjectId("563a38173c2ab9248c02d89f")
示例中找到您的第二個(gè)對象
db.test.find({ startTime: { $gte: '2015-11-03 00:00:00', $lt: '2015-11-04 00:00:00' } }).pretty()
通過在我們的查詢上運(yùn)行 explain(),我們可以看到索引實(shí)際上正在使用中:
db.test.find({startTime:{$gte:'2015-11-03 00:00:00', $lt:'2015-11-04 00:00:00'}}).explain() { "cursor" : "BtreeCursor startTime_1", "isMultiKey" : false, "n" : 1, "nscannedObjects" : 1, "nscanned" : 1, "nscannedObjectsAllPlans" : 1, "nscannedAllPlans" : 1, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "startTime" : [ [ "2015-11-03 00:00:00", "2015-11-04 00:00:00" ] ] }, "server" : "Jaans-MBP.home:27017" }
我的建議仍然是遵循最佳實(shí)踐并以正確的日期格式存儲您的日期字段,例如
"startTime" : ISODate("2016-05-02T00:00:02Z")
在 MongoDB shell 中,您只需通過
> db.test.insert({startTime:new Date()}) > db.test.find() // results { "_id" : ObjectId("563a49d63b1f1b7df0ebc4f5"), "startTime" : ISODate("2015-11-04T18:09:26.613Z") }
到此這篇關(guān)于mongodb中簡單的根據(jù)時(shí)間過濾進(jìn)行查詢的文章就介紹到這了,更多相關(guān)mongodb時(shí)間過濾查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實(shí)例
今天小編就為大家分享一篇關(guān)于MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10MongoDB 3.6版本中bind_ip設(shè)置詳解
這篇文章主要給大家介紹了關(guān)于MongoDB 3.6版本中bind_ip設(shè)置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12express使用Mongoose連接MongoDB操作示例【附源碼下載】
這篇文章主要介紹了express使用Mongoose連接MongoDB操作,結(jié)合實(shí)例形式分析了express使用Mongoose連接MongoDB的具體步驟與相關(guān)實(shí)現(xiàn)技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2019-07-07MongoDB實(shí)現(xiàn)查詢、分頁和排序操作以及游標(biāo)的使用
本文詳細(xì)講解了MongoDB實(shí)現(xiàn)查詢、分頁和排序操作以及游標(biāo)的使用方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07mongodb 3.4下遠(yuǎn)程連接認(rèn)證失敗的解決方法
這篇文章主要給大家介紹了在mongodb 3.4下遠(yuǎn)程連接認(rèn)證失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06MongoDB學(xué)習(xí)筆記—Linux下搭建MongoDB環(huán)境
本篇文章主要介紹了Linux下搭建MongoDB環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11mongoDB4.2.8備份恢復(fù)與導(dǎo)出導(dǎo)入(推薦)
這篇文章主要介紹了mongoDB4.2.8備份恢復(fù)與導(dǎo)出導(dǎo)入的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12