当前位置: 首页 > 面试题库 >

使用MongoDB和Nodejs插入和查询日期

常业
2023-03-14
问题内容

我需要一些帮助,以便在mongodb和nodejs中按日期查找记录。

我将日期添加到抓取脚本中的json对象中,如下所示:

jsonObj.last_updated = new Date();

该对象被插入到mongodb中。我可以看到如下:

 "last_updated" : "2014-01-22T14:56:59.301Z"

然后在我的nodejs脚本中执行findOne():

 var jObj = JSON.parse(line.toString());

 collection.findOne(jObj,function(err, doc) {
   if (doc){
     console.log(doc._id);
   } else  {
     console.log('not found');
   }
 });

找不到对象。如果我从对象中删除last_updated字段,则会找到它,因此绝对是问题所在。

如果我按以下方式隔离字段:

collection.findOne({last_updated: '2014-01-22T14:56:59.301Z'},function(err, doc) {
  if (doc){
    console.log(doc._id);
  } else  {
    console.log('not found');
  }
});

什么也没有回来。请问我做错了什么?


问题答案:

您需要传递日期对象,而不是日期字符串。

collection.findOne({last_updated: new Date('2014-01-22T14:56:59.301Z')},function(err, doc) {

MongoDB驱动程序会将其转换为ISODate

{ 
   "_id" : ObjectId("52dfe0c469631792dba51770"), 
   "last_updated" : ISODate('2014-01-22T14:56:59.301Z') 
}


 类似资料:
  • 现在我想从nodejs插入。我已经试过了,但不起作用

  • 问题内容: 嗨,我有一个名为“ my_sales”的集合,其字段为product_name,price,sale_date。 我的文档看起来像 我像这样在mongo shell中尝试过 它给出正确的结果。现在我需要使用我尝试过的golang查询同一件事 它给空结果请帮助 问题答案: 氧化镁支持了time.time为BSON日期。 因此,如果您的结构看起来像这样: 然后,您可以像这样查询它:

  • 因此,正如标题所示,我的MongoDB数据库中有以下示例文档: 如您所见,日期存储为字符串,而不是ISODate对象。据我所知,MongoDB应该仍然能够将其作为日期进行处理和查询。(来源) 因此,我试图用JDBC在我的java应用程序中以以下方式查询它: 然而,这是行不通的。我的思考过程是,如果我通过java。util。日期,然后是过滤器。gte()方法将知道我的意思是查询一个日期,它将按照Mo

  • 如果日期相同,则使用进行查询将无法正常工作。它更像是。 但如果我给query param加上1秒,它就会工作。 下面是示例查询; 我有一个文档,它是时间戳。 此查询与日期为的文档相匹配,如果我将查询时间戳增加一个,如。 我正在使用mongo控制台,但我在php中遇到了与MongoDate相同的问题 编辑:查询的输出 edit2:问题是mongo的php扩展。它记录了“当文档发送到/从数据库发送时,

  • 问题内容: 我试图找出如何用Mongoose做特定的查询。我在mongodb中有这样的东西: 我想获取实际日期和modificationDate之间的差异大于5天的所有对象。 问题答案: 计算5天的截止时间,然后使用运算符和计算出的截止值执行:

  • 我想在mongodb中插入数据,其中一个字段是对象类型的数组。我无法了解如何将数据与mongoose模式中定义的其他字段一起添加到数组字段中。当我试图使用POSTMAN发布数据时,请使用以下配置,如屏幕截图所示: 它的显示游戏数组为空,显示以下错误 下面是我的代码: db。js 出版商js 可以按照下面的代码插入两个字段,但如何将数组字段与这两个字段一起添加。 服务器js 有人让我知道如何执行这项