你如何使用节点js在mongodb中按日期匹配?

时间:2016-12-19 13:40:53

标签: javascript node.js mongodb

我在mongo数据库中有一个数据集,其元素如下:

INITIAL_X = 0.

我正在尝试搜索日期全名条款。

在mongo中(在命令行上)如果我执行以下命令,我会返回一些元素:

  

db.collection_name.find({$ and:[{fullname:{$ regex:" ^匿名   用户$",$选项:'我' },{" date" :{" $ lt" :   ISODate(" 2016-12-19T00:00:00Z")}}]})。漂亮()

当全名匹配且日期小于给定日期时。这很好,所以我知道我的数据库存储了数据,但日期和名称是硬编码的。

我正在node.js中编写一个脚本,并想出了这个:

{
    "fullname" : "Anonymous User",
    "date" : ISODate("2016-12-09T04:00:27Z")
}

我正在尝试在我的nodejs脚本中使用mongodb模块和这段代码:

  

db.collection(collection_name).find(search_term).toArray(function   (错误,结果){console.log(results); });

但是当我运行我的脚本时,没有返回任何结果。没有错误消息 - 只是没有项目匹配且没有结果。

我做错了什么?

我认为这可能与日期如何存储在变量" search_term"但我不知道如何解决这个问题。例如,这有效:

  

db.collection(collection_name).find({$ and:[{fullname:{$ regex:   " ^匿名用户$",$选项:'我' },{date:{$ lt:new Date()}}]   });

这不起作用:

  

db.collection(collection_name).find(search_term).toArray(function   (错误,结果){console.log(results); });

唯一的区别是我用" search_term"替换了find语句。

我想使用后者来避免代码重复。

1 个答案:

答案 0 :(得分:0)

你需要像这样传递它

var today = new Date().toISOString()