Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node Mongo Native - how to tell when a cursor is exhausted?

The documentation for the node-mongo-native collection.find() function says that it creates a cursor object which lazily returns the matching documents. Furthermore:

The basic operation on a cursor is the nextObject method that fetches the next matching document from the database. The convenience methods each and toArray call nextObject until the cursor is exhausted.

Unfortunately, the documentation provides no indication of how to tell when the cursor is actually exhausted. You could use the "toArray" method and use the standard array interface (e.g. the "length" method) but this solution is inappropriate for streaming large amounts of data. The MongoDB API Wiki refers to the cursor.hasNext() in the mongo shell but this method does not seem to be available in the node.js driver.

How can you determine when the cursor is exhausted when streaming data from MongoDB in node.js?

like image 371
maerics Avatar asked Jan 15 '23 08:01

maerics


1 Answers

The documentation for Cursor#nextObject does define that the second parameter to its callback is null if there are no more results available.

The first parameter will contain an error object on error while the second parameter will contain a document from the returned result or null if there are no more results.

like image 171
JohnnyHK Avatar answered Jan 21 '23 23:01

JohnnyHK