MongoDB Atlas在线存档自定义标准

发布于 2025-01-21 09:19:23 字数 538 浏览 0 评论 0原文

我正在尝试创建一个自定义标准查询,问题是Mongo要求它是JSON文档,然后将其转换为查询,

我希望这是查询db.Reports.find({{{“ time_lo_res) “:{$ lte:numberlong(isodate()。getTime()-1000 * 3600 * 24 * 30)}}},{“ category”:“ user”})。sort({“ time_lo_res”:1})代码> IE获取所有具有time_lo_res的文档,比30天大,并且类别是用户,然后对它们进行排序。

我设法得到了那些

  "time_lo_res": {
    "$lte": "NumberLong(ISODate().getTime() - 1000 * 3600 * 24 * 30)"
  },
  "category": {
    "$eq": "user"
  }
}

缺少排序部分的内容,无法弄清楚如何添加它,也不确定参数周围的报价是否没有打破查询,因为它需要有效的JSON,因此需要

它们任何帮助

I'm trying to create a custom criteria query, the issue is that mongo requires it to be a json document and it then translate it to a query

i want this to be the query db.reports.find({ "time_lo_res": { $lte: NumberLong(ISODate().getTime() - 1000 * 3600 * 24 * 30)}}, { "category": "user" }).sort({ "time_lo_res": 1 })
i.e. get all the docs that have time_lo_res older then 30 days and the category is user, then sort them ascending.

i managed to get this

  "time_lo_res": {
    "$lte": "NumberLong(ISODate().getTime() - 1000 * 3600 * 24 * 30)"
  },
  "category": {
    "$eq": "user"
  }
}

which is missing the sort part, can't figure out how to add it, also not sure if the quotes around the arguments doesn't break the query, they are required since it require a valid json

will really appreciate any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

著墨染雨君画夕 2025-01-28 09:19:24

这是您可以使用聚合管道进行的一种方法。

db.collection.aggregate([
  {
    "$match": {
      "$expr": {
        "$lte": [
          "$time_lo_res",
          {
            "$dateSubtract": {
              "startDate": "$NOW",
              "unit": "day",
              "amount": 30
            }
          }
        ]
      },
      "category": "user"
    }
  },
  {
    "$sort": {
      "time_lo_res": 1
    }
  }
])

Here's one way you could do it using an aggregation pipeline.

db.collection.aggregate([
  {
    "$match": {
      "$expr": {
        "$lte": [
          "$time_lo_res",
          {
            "$dateSubtract": {
              "startDate": "$NOW",
              "unit": "day",
              "amount": 30
            }
          }
        ]
      },
      "category": "user"
    }
  },
  {
    "$sort": {
      "time_lo_res": 1
    }
  }
])

Try it on mongoplayground.net.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文