• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何从MongoDB集合中创建并行和顺序的作业队列(FIFO)?

JavaScript 来源:Ruslan 7次浏览

下面是我收集的模式:如何从MongoDB集合中创建并行和顺序的作业队列(FIFO)?

var mongoose = require('mongoose'); 

var urlSchema = new mongoose.Schema({ 
    url: String, 
    easeDate: { type: Date, index: 1}, 
    created: { type: Date, default: Date.now } 
}); 

我需要做的最早的文件(由easeDate)的更新行动来改变其easeDate日期«现在+一些超时»并得到受影响的文档。是否可以在一个请求中?

基本上,我想从集合中创建一个类似队列的东西(“最老的”一个是下一个,即先进先出)。删除网址(收藏中的文件)是由其他条件完成的。我不想从队列中删除,但通过更新easeDate来结束它。

最后,我想获取可用的网址并为其设置超时时间,以便下一次返回下一个网址。如果这是最后一个网址,则由于超时,下次返回null

如果我可以更新它,那么我该如何查询数据库(猫鼬)来获取下一个网址easeDate < Date.now()?你能举一个JavaScript例子吗?


===========解决方案如下:

使用findAndModify()的排序

如果你从一台机器你可以这样做,用findAndRemove访问你的筹码

Model.collection.findAndModify({query:{}, sort:{created: 1}, remove:true}) 

您需要访问collection因为mongoose不实施

findAndModify你有findOneAndUpdate个但它不会删除文档

的更多信息:

Does Mongoose support the Mongodb `findAndModify` method?


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)