【发布时间】:2019-03-12 10:02:09
【问题描述】:
我遇到以下问题:
我有一个快速服务器,用作我正在构建的网站的后端/“API”。
我的路线 /weekly 支持 2 个参数:开始时间和结束时间
如果没有给定参数,我会在晚上 11.59 和前 3 周的凌晨 1 点生成当天的 unix 时间戳
使用这 2 个时间戳和我运行此函数的数据库对象:
weeklyimport: async function (db_payload, start, ende) {
db = db_payload
let callection = await db.collection('History').find({$and: [
{"datumUnix": {$gt: start}}, {"datumUnix": {$lt: ende}}, {"status": 4}, {"bereich": {$ne: "Akquise"}}, {"bereich": {$ne: "Entwicklung"}}, {"bereich": {$ne: "Gewinnung"}}
]}).toArray()
return callection
}
在第一次加载页面时,我调用不带参数的页面来获取 21 天时间跨度的数据。第一个查询(不带参数)的开始和结束的 Console.log 显示开始为 1550530800,结束为 1552382360。此查询返回约 6800 个结果。 将时间范围更改为相同的开始和结束(这次只是手动而不是自动)后,开始和结束分别更改为 1550530800 和 1552431599。然而这次我得到一个空数组作为返回值和 0 个结果。
当我跑步时
db.getCollection('History').find({$and: [
{"datumUnix": {$gt: 1550530800}}, {"datumUnix": {$lt: 1552431599}}, {"status": 4}, {"bereich": {$ne: "Akquise"}}, {"bereich": {$ne: "Entwicklung"}}, {"bereich": {$ne: "Gewinnung"}}
]}).count()
在 Robo 3T 中,我得到 6835 个结果,查询结果与之前返回空数组的查询完全相同。此查询的响应时间约为 0.248 秒,因此不应该是超时问题。
我在所有地方都记录了开始和结束,以确保它们正确传递,而且它们是正确的。我最大的问题(除了空数组)是运行它时我根本没有收到任何错误。我在另一个函数中做了几乎相同的工作,并且没有问题。
非常感谢任何有关可能导致此问题的建议。感谢您的宝贵时间!
【问题讨论】:
标签: express mongodb-query