mongodb中根據(jù)時間過濾進行查詢的操作方法
mongodb中簡單的根據(jù)時間過濾進行查詢
目的:查詢當(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的語法,第一個大括號里面是:表示過濾條件
第二個大括號里面是 :控制顯示的字段
里面有一個adddate這個過濾條件是如何按照時間來進行過濾查找$gte是大于等于 $lte是小于等于
補充:如何根據(jù)日期過濾/查找MongoDB中的記錄
問題:如何根據(jù)日期過濾/查找MongoDB中的記錄
我在 MongoDB 數(shù)據(jù)庫中有一個集合,其中包含一些數(shù)據(jù),并希望根據(jù)日期(忽略時間)過濾和查找數(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 格式。不知道我錯過了什么。請指導(dǎo)。
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") }到此這篇關(guān)于mongodb中簡單的根據(jù)時間過濾進行查詢的文章就介紹到這了,更多相關(guān)mongodb時間過濾查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 6.4創(chuàng)建Mongodb副本集
這篇文章主要為大家詳細(xì)介紹了CentOS 6.4創(chuàng)建Mongodb副本集的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
Mongodb 3.2.9開啟用戶權(quán)限認(rèn)證問題的步驟詳解
這篇文章主要給大家介紹了關(guān)于Mongodb 3.2.9開啟用戶權(quán)限認(rèn)證問題的詳細(xì)步驟,通過開啟權(quán)限認(rèn)證,會對大家的Mongodb更加保護的安全些,文中將步驟介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
MongoDb的"not master and slaveok=false"錯誤及解決方法
今天小編就為大家分享一篇關(guān)于MongoDb的"not master and slaveok=false"錯誤及解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
MongoDB Windows安裝服務(wù)方法與注意事項
這篇文章主要介紹了MongoDB Windows安裝服務(wù)方法與注意事項的相關(guān)資料,MongoDB作為一個基于分布式文件存儲的數(shù)據(jù)庫,近兩年大受追捧。數(shù)據(jù)靈活的存取方式和高效的處理使得它廣泛用于互聯(lián)網(wǎng)應(yīng)用,需要的朋友可以參考下2016-12-12

