Запрос даты работает с _id, но не со значением Date - MongoDB
Итак, я пробовал это с нескольких часов, но не получил никаких результатов.
У меня есть коллекция MongoDB, которая имеет значение даты"scrape_systemTime"
Я вставляю это сscrape_systemTime : new Date()
.
Я пытаюсь получить результаты, которые на одну неделю старше, используя:
db.scrape.find({scrape_systemTime: { $lt: new Date( Date.now() - 86400000*7)}})
Который должен возвращать набор документов, который выглядит как Объект ниже, но ничего не возвращает. (Посмотрите на"scrape_systemTime"
атрибут, который имеет дату на неделю старше.)
[{
"newspaperID" : "6",
"scrape_systemTime" : "Fri Oct 25 2013 13:14:10 GMT+0000 (UTC)",
"_id" : ObjectId("526a6ea1985ba76408000010"),
"languageID" : "1",
"scrape_tabs_title" : "India",
"scrape_tabs_href" : "http://www.indianexpress.com/supplement/India/798/",
"scrape_thumb" : "images/default/noimage.jpg",
"scrape_href" : "http://www.indianexpress.com/news/political-parties-woo-chhattisgarh-youth-on-facebook-whatsapp/1187180/",
"scrape_title" : "Political parties woo Chhattisgarh youth on Facebook, WhatsApp",
"scrape_largeimage" : "http://static.indianexpress.com/m-images/Fri Oct 25 2013, 17:57 hrs/M_Id_433064_facebook.jpg",
"scrape_detail_article_text" : "",
"scrape_newstime" : "PTI : Raipur, Fri Oct 25 2013, 18:11 hrs",
"scrape_status" : "Pending",
"viewCount" : 0,
"error_log" : "OK",
"ip" : "192.168.0.101"
}, ...]
Но если я использую_id
для условия даты, то есть создатьObjectId()
с отметкой времени в одну неделю и используйте в запросе, как показано ниже:
db.scrape.find({_id: { $lt: ObjectId( Math.floor( new Date( Date.now() - 86400000*7 ) / 1000 ).toString(16) + '0000000000000000')}})
Это возвращает ожидаемые результаты.
Почему это происходит? Что-то не так в первом синтаксисе запроса?
Благодарю.