小编Bas*_*awi的帖子

避免heroku服务器休眠

我有一个在Heroku服务器上托管的网站(我是Heroku btw的新手),并且因为它在免费软件包下,它在30米不活动后睡觉,并且当用户点击它时再次投入使用,它需要大约7秒npm run start成功.

我正在考虑运行一个nodejs工作或者每29米打开一个网站的东西,以便服务器永远不会睡觉,最初,我有这样的事情:

(function wakeup() {
  require('open')('https://mywebsite.herokuapp.com', (err) => {
    if (err) throw err;
    console.log('Woke up!');
    setTimeout(wakeup, 1740000); //29m
  });
})()
Run Code Online (Sandbox Code Playgroud)

注意:这只是在浏览器中打开它,但不处理关闭它.

  • 首先,这种解决方法是否合法?
  • 其次,如果是,那么实施此方法的最佳方法是什么?

javascript jobs heroku node.js

12
推荐指数
2
解决办法
8279
查看次数

猫鼬群和伯爵

以下是我的mongodb结构:

[{
    _id: '111',
    items: [{
        productId: '123'
    }]
}, {
    _id: '222',
    items: [{
        productId: '123'
    }, {
        productId: '456'
    }]
}, {
    _id: '333',
    items: [{
        productId: '123'
    }, {
        productId: '456'
    }, {
        productId: '789'
    }]
}]
Run Code Online (Sandbox Code Playgroud)

我期望分组和计数productId,结果是:

[{
    productId: '123',
    count: 3
}, {
    productId: '456',
    count: 2
}, {
    productId: '789',
    count: 1
}]
Run Code Online (Sandbox Code Playgroud)

好吧,我尝试过这样使用aggregation,但我认为我弄错了:

const aggregatorOpts = [{
  $group: {
    _id: "$items.productId",
    count: { $sum: 1 }
  }
}]

Model.aggregate(aggregatorOpts).exec() …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js aggregation-framework

6
推荐指数
1
解决办法
9918
查看次数

mongodb如何处理2038年1月19日星期二之后的ObjectId时间戳?

根据MongoDB官方文档,它指出:

ObjectId值由12个字节组成,其中前四个字节是反映ObjectId创建的时间戳,尤其是:

  • 一个4字节的值,表示自Unix时代以来的秒数,
  • 一个3字节的机器标识符,
  • 一个2字节的进程ID,以及
  • 一个3字节的计数器,以随机值开头。

我只是想知道2038年1月19日星期二格林尼治标准时间会发生什么当时unix时间等于2147483648,这不适合ObjectId * philosoraptor meme *中的4字节时间戳

timestamp mongodb

5
推荐指数
1
解决办法
349
查看次数