Tag: 游标

如何迭代NodeJS中的Twitter API的游标响应对象(npm Twitter模块)?

我想弄清楚如何从特定的twitter列表中获取用户ID数组,并自动根据TwitterAPI JSON响应(next_cursor)中的属性转到下一个游标。 文档: https : //dev.twitter.com/rest/reference/get/lists/members || https://dev.twitter.com/overview/api/cursoring 我的代码: var Twitter = require('twitter') var numFromCursor = -1; var client = new Twitter({ consumer_key: process.env.tw_consumer_key, consumer_secret: process.env.tw_consumer_secret, access_token_key: process.env.tw_access_token, access_token_secret: process.env.tw_access_token_secret }) var cursorIterator = (twitClient, cursorObj) => { twitClient.get('https://api.twitter.com/1.1/lists/members.json', {list_id: '*insert twitter list_id*', cursor: cursorObj}) .then((list)=>{ console.log(list); cursorObj = list.next_cursor return list }) .catch((err)=>{ console.log(err); […]

简单的方法来通过nodejs中的asynchronous光标

我想写最后一个可能的代码来通过一个asynchronous光标。 我从以下(破碎的)代码开始: function something( done ){ stores.someStore.select( {}, { cursor: true }, function( err, cursor ){ var processItem = function( err, item ){ console.log("Item before check:", item ); if( item === null ) return; console.log("Item:", item ); cursor.next( processItem); }; cursor.next( processItem ); }); } 这显然是非常破碎的: 不检查错误 一旦光标完成,我就不能在goThroughCursor做任何事情 我想出了这个解决scheme,看起来太复杂了, 必须有更好的方法来做到这一点… function goThroughCursor( cursor, processItem, cb […]

如何从AQL查询中获取所有数据 – NodeJS&ArangoDB

我传递一个查询结果到这样的数组: var someArray = []; arangodb.query('somequery') .then( cursor => cursor.all()).then( keys => someArray = keys, err => console.error('Failed to execute query:', err) ).then(function () { // do stuff with someArray }); 这种方法很有效,但感觉不对。 我正在使用三次。 这段代码是否可以以更高效和更短的方式重写? 我GOOGLE了,但我找不到一个好例子。 提前致谢。

从stream()移动到cursor()时,lean()不再起作用

在这里添加的DeprecationWarning,似乎是说cursor()是stream()一个插入replace,但是有一些function似乎已经被抛弃了。 例如,这个被弃用的代码将会有“瘦”的文件,而不是 mongoose.Document实例。文件: Cat .find({ }).lean() .stream() .on('data', function (data) { var value = data instanceof mongoose.Document; console.log('lean().stream() data instanceof mongoose.Document', value); }) .on('end', function () { }); 并且这个代码将会有mongoose文档,即使在使用lean()时候: Cat .find({ }).lean() .cursor() .on('data', function (data) { var value = data instanceof mongoose.Document; console.log('lean().cursor() data instanceof mongoose.Document', value); }) .on('end', function () {}); 这是因为它们的源代码在这个改变时看起来是相同的, stream() […]

什么时候使用cursor.forEach()时调用db.close()?

如果使用.toArray() ,我知道你可以在callback中使用db.close() ,像这样: db.collection('grades').find(query).toArray(function(err, docs) { if (err) throw err; console.dir(docs); db.close(); }); 但是如果你需要迭代数组呢? 这似乎过分1)遍历游标来构造数组,然后2)遍历数组来做你的工作。 所以我在想,使用cursor.forEach()会很好。 var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://localhost:27017/weather', function(err, db) { if (err) throw err; var cursor = db .collection('data') .find({}) .sort({State: 1, Temperature: -1}); var prevState = ''; var curr; cursor.forEach(function(doc) { if (doc.State === prevState) return; db.collection('data').update(doc, { $set: { […]

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式传输数据时,如何确定光标何时耗尽?