Javascript 将数组转换为光标

Javascript 将数组转换为光标,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,使用.toArray(foo)方法可以轻松地将游标转换为数组: var cursor = col.find({}); cursor.toArray(function (err, itemsArray) { /* do something */ }); 但是是否可以在游标中转换itemsArray,以便我拥有所有游标函数 var newCursor = foo (itemsArray); typeof newCursor.toArray === "function" // true 这都

使用
.toArray(foo)
方法可以轻松地将游标转换为数组:

var cursor = col.find({});
cursor.toArray(function (err, itemsArray) {
   /* do something */
});
但是是否可以在游标中转换
itemsArray
,以便我拥有所有游标函数

var newCursor = foo (itemsArray);
typeof newCursor.toArray === "function" // true

这都是JavaScript,为什么不创建自己的迭代器呢

var迭代器=函数(){
var项目=[];
var指数=0;
返回{
“createCursor”:函数(列表){
项目=列表;
},
“下一步”:函数(){
if(this.hasNext()){
返回项目[索引+++];
}否则{
返回null;
}
},
“hasNext”:函数(){
如果(索引
然后将其与数组一起使用:

var cursor=new Iterator();
createCursor(数组);
cursor.next();//仅返回数组的第一个元素

这只是编写迭代器的一般方法。如果您想要更多功能,那么只需将其他方法添加到原型中。

您想要模拟MongoDB cursor api对吗?@LeonidBeschastny如果可能的话,我不仅想要模拟,还想真正使用现有的api将数组转换为cursor。我怀疑这样的api是否存在。@LeonidBeschastny为什么不创建自己的api呢迭代器?这很简单。见答案。+1表示努力。但我正在寻找是否可以使用现有的API实现这一点。@IonicăBizău您基本上只是将“游标”更改为“数组”。因此没有可用的“API”。正如所示,在任何语言中编写迭代器都是非常简单的。你是对的。我等待着Mongodevs的官方回答,这是:你能让这样一个数组通过管道来响应吗
cursor.pipe(res)
@IonicãBizãu节点驱动程序支持转换为开箱即用。如果您想实现自己的流式迭代器,可以按照