mongodb - 日期查询适用于 _id 但不适用于日期值 - MongoDB

标签 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')}})

它返回预期的结果。

为什么会这样?第一个查询语法有什么问题吗?

Image here

谢谢。

最佳答案

您文档中的 scrape_systemTime 字段是一个字符串,而不是一个 Date,它解释了为什么您的查询不起作用。

所以一定是您没有像您认为的那样插入您的文档,因为如果您将该字段插入为:

scrape_systemTime: Date()

关于mongodb - 日期查询适用于 _id 但不适用于日期值 - MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34512154/

相关文章:

node.js - Nodejs 在 mongodb 中存储一小时前的日期值

MongoDB 插入音频

javascript - MongoDB:将数组转换为对象

node.js - Node - MongoDB : collection don't find anything, 使用 mongodb 驱动程序。 Shell确实有返回值

javascript - 收到错误bundle.js :39454 Uncaught TypeError: Cannot read property 'email' of undefined using MERN stack

python - 我可以为集成应用程序的每种服务制作测试假人吗?

php - MongoDB:如何查询嵌套数组?

javascript - Meteorjs collection.find 不会从数据库返回特定数据

node.js - 如何存储 hh(小时) :mm(minutes) time in mongodb

Node.js 和 Passport 对象没有方法 validPassword