node.js - 在mongodb中查询字符串日期格式

标签 node.js mongodb mongodb-query aggregation-framework

我的 mongoDB 集合中有如下数据。我想统计今天的总数或 search_term。

_id:ObjectId("5b7e1d38981cdc1a7c8bb5fc")
search_term:"Baiyoke Boutique"
date:"August 23rd 2018, 9:34:32 am"

_id:ObjectId("5b7e1fa8fa27fd2754080ad9")
search_term:"Baiyoke Boutique"
date:"August 23rd 2018, 9:44:56 am"

_id:ObjectId("5b7e28314d2d0f388c1596cd")
search_term:"Baiyoke Florting Market"
date:"August 23rd 2018, 10:21:21 am"

我试过以下查询。我用过moment。我不是我犯了什么错误。

var start = moment().startOf('day');
var end = moment().endOf('day');

history.find({
    date: {
        $gte: start,
        $lt: end
    }
    }).count().toArray(
    function (e, res) {
        if (e) callback(e)
        else callback(null, res)
});

最佳答案

您可以在 mongodb 3.6 及更高版本中尝试以下查询

db.collection.find({
  "$expr": {
    "$gte": [{ "$dateFromString": { "dateString": "$date" }}, start.toDate() ],
    "$lt": [{ "$dateFromString": { "dateString": "$date" }}, end.toDate() ]
  }
}).count()

或聚合

db.collection.aggregate([
  { "$addFields": {
    "date": {
      "$dateFromString": {
        "dateString": "$date"
      }
    }
  }},
  { "$match": { "date": { "$gte": start.toDate(), "$lt": end.toDate() }}},
  { "$count": "count" }
])

关于node.js - 在mongodb中查询字符串日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51983538/

相关文章:

node.js - 在 MongoDB 中使用变量作为字段名时,我可以在嵌入式文档上使用 '$set' 吗?

javascript - javascript 是否有 __repr__ 等价物?

node.js - Istanbul 尔与 Mocha ,nodejs 总是提供相同的覆盖范围

c# - 来自最新 .Net MongoDb.Driver 的连接问题

java - 如何在 mongodb 中按一个字段值分组并按另一字段排序

mongodb - 在我的 MongoDB 子文档中查找具有一定数量字段的结果

javascript - 使用 parseString() 时, Node xml2js 返回 'undefined'

node.js - 如何自动重启 Node 应用程序?

javascript - 如何更新 MongoCollection 但保留一些值?

mongodb - 如何使用 ReactiveMongo 设置 Play!2.5