Node.js NodeJs中基于时间的应用建模
我正在开发一个拍卖风格的网络应用程序,在这个程序中,产品可以在一段时间内使用 我想知道你将如何建模 到目前为止,我所做的是在DB中存储产品:Node.js NodeJs中基于时间的应用建模,node.js,Node.js,我正在开发一个拍卖风格的网络应用程序,在这个程序中,产品可以在一段时间内使用 我想知道你将如何建模 到目前为止,我所做的是在DB中存储产品: { ... id: p001, name: Product 1, expire_date: 'Mon Oct 7 2013 01:23:45 UTC', ... } 每当客户请求该产品时,我都会测试*current\u date
{
...
id: p001,
name: Product 1,
expire_date: 'Mon Oct 7 2013 01:23:45 UTC',
...
}
每当客户请求该产品时,我都会测试*current\u date谢谢大家! 每次请求时扫描整个集合听起来像是在浪费处理时间 我将使用类似这样的工具来处理跟踪主服务器进程以及使用其内置的cron功能运行定期任务。一些想法:
expire\u date
字段编制索引。如果您正在扫描超过某个日期的拍卖项目,您将需要进行扫描李>
过期的
(或活动的
)字段,以便您还可以执行其他类型的非日期搜索(因为您总是可以并且无论如何都应该拒绝过期的拍卖)李>
active
,您可以进一步将扫描限制为仅限于那些处于活动状态且过期的拍卖项目。考虑这些情况的复合指数。(例如,随着时间的推移,您将拥有更多不需要扫描的过期项目)李>
{
...
id: p001,
name: "Product 1",
expire_date: ISODate("Mon Oct 7 2013 01:23:45 UTC"),
active: true,
...
}
// console
db.auctions.esureIndex({expire_date: -1, active: 1})
// javascript idea:
var theExpirationDate = new Date(2013, 10, 06, 0, 0, 0);
db.auctions.find({ expire_date : { "$lte" : theExpirationDate }, active: true })