MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Streamen Sie MongoDB-Ergebnisse an Express Response

Was Sie tun können, ist, den Anfang des Arrays res.write("[") explizit zu schreiben Bevor Sie die Datenbank anfordern, geben Sie einen , ein , schreiben Sie bei jedem json-stringifizierten Objekt und am Ende des Streams das Ende des Arrays res.write("]") das kann funktionieren. Aber es ist nicht ratsam!

Ein besserer Ansatz wäre eine streamfähige JSON.stringify-Implementierung wie json-stream-stringify

const JsonStreamStringify = require('json-stream-stringify');
app.get('/api/users', (req, res, next) => {
   const stream = db.collection('documents').find().stream();
   new JsonStreamStringify(stream).pipe(res);
);