Tag: 节点 mongodb native

在MongoDB中处理(长期)连接丢失

我正在写一个使用商店的Web应用程序。 如果客户端在30秒内没有收到响应,则认为请求已经失效,并且发生超时错误。 我试图让MongoDB做同样的事情。 例如,如果连接下降1分钟,则驱动程序将尝试重新连接并挂起客户端的请求,直到重新连接成功。 所以,像socketTimeoutMS (我设法工作)的东西在这里没有效果。 什么是最好的方式让MongoDB在N秒后对请求“放弃”? 我想要的最后一件事情是给客户端一个超时错误 – 服务器在5分钟后实际完成请求!

如何发送variables的当前值到asynchronouscallback

我有这个问题相同的问题,但不能得到解决scheme的工作。 我正在尝试编写一个nodejs脚本,它将首先检查mongo中的caching值,但是如果它不存在,那么就closures并计算它。 问题是,findOne()callback没有得到循环variables的原始值,所以callback不能正确计算和存储的价值。 (我已经省略了实际的提取,存储和返回,以专注于我有的实际问题)。 无论我做什么,我都无法获得原始价值来回馈。 for (var d=start_date; d<now; d.setHours(d.getHours()+1)) { (function(key) { console.log('caller='+key) db.collection('avgs').findOne( { date: key.toISOString() },function (err,data) { console.log('callback='+key); if (data) { //return data } else { // compute average for given date , insert into database and return value } }); })(d); }; 控制台日志显示了这一点 caller=Tue Mar 25 2014 00:00:00 GMT+1030 (CST) […]

Node Mongo Native – 如何判断游标何时耗尽?

node-mongo-native collection.find()函数的文档说,它创build一个游标对象,它懒散地返回匹配的文档。 此外: 游标上的基本操作是从数据库中提取下一个匹配文档的nextObject方法。 each方便的方法和nextObject调用nextObject直到游标耗尽。 不幸的是,文档并没有提供如何判断游标实际耗尽的迹象。 您可以使用“toArray”方法并使用标准数组接口(例如“length”方法),但是这种解决scheme不适合stream式传输大量数据。 MongoDB API Wiki引用了mongo shell中的cursor.hasNext() ,但是这个方法在node.js驱动程序中似乎不可用。 在node.js中从MongoDBstream式传输数据时,如何确定光标何时耗尽?