所以。我有一个非常基本的脚本,它连接到一个数据库,并在包含大量文档的集合上执行find
并将其限制为3个项目。除了在我的结果结尾处,一切都运行平稳,一个null
和脚本不会终止,而不是在成功完成后悄然关闭连接。node-mongodb-native - 游标在每次调用期间返回null作为最后一个值
在这里我声明我的PARAMS和创建我的数据库对象:
var SERVER = 'localhost',
PORT = 27017,
DATABASE = 'test',
COLLECTION = 'coll',
mongo = require('mongodb'),
db = new mongo.Db(DATABASE,
new mongo.Server(SERVER, PORT, {auto_reconnect: true}),
{});
在这里,我连接到数据库,并进行了find
光标和each
功能进行查询:
db.open(function(err, db) {
if(err) throw err;
var collection = new mongo.Collection(db, COLLECTION),
cursor = collection.find({}, {}).limit(3);
cursor.each(function(err, doc) {
if(err) throw err;
console.log(doc);
});
db.close();
});
结果很不错:
{ _id: '1',
a: 'first object' }
{ _id: '2',
a: 'second object' }
{ _id: '3',
a: 'third object' }
直到出现
null
出现。
如上所述,脚本然后继续不终止。
我不明白为什么,并会很高兴指示如何使它很好地终止。
这应该是实际的答案。 – Julian
甚至,在调用cursor.each期间,我得到一个null作为最后一个值。 nodejs版本:0.12.9,mongodb ddriver版本:^ 2.2.33。很好,我看到了这个答案。 –