mongodb中根據時間過濾進行查詢的操作方法
mongodb中簡單的根據時間過濾進行查詢
目的:查詢當某天的文檔信息
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的語法,第一個大括號里面是:表示過濾條件
第二個大括號里面是 :控制顯示的字段
里面有一個adddate這個過濾條件是如何按照時間來進行過濾查找$gte是大于等于 $lte是小于等于
補充:如何根據日期過濾/查找MongoDB中的記錄
問題:如何根據日期過濾/查找MongoDB中的記錄
我在 MongoDB 數據庫中有一個集合,其中包含一些數據,并希望根據日期(忽略時間)過濾和查找數據。
樣本數據
{
"_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)"
}我使用以下命令來獲取大于特定日期的數據,但它沒有給我任何結果。 startTime 和 endTime 都是 EST 格式。不知道我錯過了什么。請指導。
db.jobs.find({"startTime" : { $gt : new Date("2015-11-03")}});解答
答:可以簡單的通過字符串比較來查詢。
首先,確保 startTime 列上的索引
db.test.ensureIndex({startTime:1})以下命令在_id:ObjectId("563a38173c2ab9248c02d89f")示例中找到您的第二個對象
db.test.find({
startTime: {
$gte: '2015-11-03 00:00:00',
$lt: '2015-11-04 00:00:00'
}
}).pretty()通過在我們的查詢上運行 explain(),我們可以看到索引實際上正在使用中:
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"
}我的建議仍然是遵循最佳實踐并以正確的日期格式存儲您的日期字段,例如
"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") }到此這篇關于mongodb中簡單的根據時間過濾進行查詢的文章就介紹到這了,更多相關mongodb時間過濾查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MongoDB使用mongoexport和mongoimport命令,批量導出和導入JSON數據到同一張表的實例
今天小編就為大家分享一篇關于MongoDB使用mongoexport和mongoimport命令,批量導出和導入JSON數據到同一張表的實例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
express使用Mongoose連接MongoDB操作示例【附源碼下載】
這篇文章主要介紹了express使用Mongoose連接MongoDB操作,結合實例形式分析了express使用Mongoose連接MongoDB的具體步驟與相關實現技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2019-07-07
MongoDB學習筆記—Linux下搭建MongoDB環(huán)境
本篇文章主要介紹了Linux下搭建MongoDB環(huán)境,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11

