mongodb中根據(jù)時(shí)間過(guò)濾進(jìn)行查詢(xún)的操作方法
mongodb中簡(jiǎn)單的根據(jù)時(shí)間過(guò)濾進(jìn)行查詢(xún)
目的:查詢(xú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的語(yǔ)法,第一個(gè)大括號(hào)里面是:表示過(guò)濾條件
第二個(gè)大括號(hào)里面是 :控制顯示的字段
里面有一個(gè)adddate這個(gè)過(guò)濾條件是如何按照時(shí)間來(lái)進(jìn)行過(guò)濾查找$gte是大于等于 $lte是小于等于
補(bǔ)充:如何根據(jù)日期過(guò)濾/查找MongoDB中的記錄
問(wèn)題:如何根據(jù)日期過(guò)濾/查找MongoDB中的記錄
我在 MongoDB 數(shù)據(jù)庫(kù)中有一個(gè)集合,其中包含一些數(shù)據(jù),并希望根據(jù)日期(忽略時(shí)間)過(guò)濾和查找數(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)"
}我使用以下命令來(lái)獲取大于特定日期的數(shù)據(jù),但它沒(méi)有給我任何結(jié)果。 startTime 和 endTime 都是 EST 格式。不知道我錯(cuò)過(guò)了什么。請(qǐng)指導(dǎo)。
db.jobs.find({"startTime" : { $gt : new Date("2015-11-03")}});解答
答:可以簡(jiǎn)單的通過(guò)字符串比較來(lái)查詢(xún)。
首先,確保 startTime 列上的索引
db.test.ensureIndex({startTime:1})以下命令在_id:ObjectId("563a38173c2ab9248c02d89f")示例中找到您的第二個(gè)對(duì)象
db.test.find({
startTime: {
$gte: '2015-11-03 00:00:00',
$lt: '2015-11-04 00:00:00'
}
}).pretty()通過(guò)在我們的查詢(xún)上運(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í)踐并以正確的日期格式存儲(chǔ)您的日期字段,例如
"startTime" : ISODate("2016-05-02T00:00:02Z")在 MongoDB shell 中,您只需通過(guò)
> db.test.insert({startTime:new Date()})
> db.test.find()
// results
{ "_id" : ObjectId("563a49d63b1f1b7df0ebc4f5"), "startTime" : ISODate("2015-11-04T18:09:26.613Z") }到此這篇關(guān)于mongodb中簡(jiǎn)單的根據(jù)時(shí)間過(guò)濾進(jìn)行查詢(xún)的文章就介紹到這了,更多相關(guān)mongodb時(shí)間過(guò)濾查詢(xún)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 6.4創(chuàng)建Mongodb副本集
這篇文章主要為大家詳細(xì)介紹了CentOS 6.4創(chuàng)建Mongodb副本集的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Mongodb 3.2.9開(kāi)啟用戶(hù)權(quán)限認(rèn)證問(wèn)題的步驟詳解
這篇文章主要給大家介紹了關(guān)于Mongodb 3.2.9開(kāi)啟用戶(hù)權(quán)限認(rèn)證問(wèn)題的詳細(xì)步驟,通過(guò)開(kāi)啟權(quán)限認(rèn)證,會(huì)對(duì)大家的Mongodb更加保護(hù)的安全些,文中將步驟介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08
MongoDb的"not master and slaveok=false"錯(cuò)誤及解決方法
今天小編就為大家分享一篇關(guān)于MongoDb的"not master and slaveok=false"錯(cuò)誤及解決方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10
mongodb中根據(jù)時(shí)間過(guò)濾進(jìn)行查詢(xún)的操作方法
這篇文章主要介紹了mongodb中簡(jiǎn)單的根據(jù)時(shí)間過(guò)濾進(jìn)行查詢(xún),文末補(bǔ)充介紹了如何根據(jù)日期過(guò)濾/查找MongoDB中的記錄,結(jié)合實(shí)例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
MongoDB Windows安裝服務(wù)方法與注意事項(xiàng)
這篇文章主要介紹了MongoDB Windows安裝服務(wù)方法與注意事項(xiàng)的相關(guān)資料,MongoDB作為一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),近兩年大受追捧。數(shù)據(jù)靈活的存取方式和高效的處理使得它廣泛用于互聯(lián)網(wǎng)應(yīng)用,需要的朋友可以參考下2016-12-12

