MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose QueryStream nuovi risultati

Ho scoperto che per far funzionare questo metodo dovevo cambiare la mia collezione in una capped collection :

var OrderSchema = new Mongoose.Schema({...
}, { capped: { size: 10, max: 10, autoIndexId: true }});

var Orders = db.model('orders', OrderSchema);

var stream = Orders.find().tailable().stream();

stream.on('data', function(doc){
    console.log('New item!');
    console.log(doc);
}).on('error', function (error){
    console.log(error);
}).on('close', function () {
    console.log('closed');
});

Funziona perché ora posso trattare la MongoDB collection come una sorta di coda di messaggi, che viene continuamente aggiornata.

Stranamente quando lo avvolgo all'interno di un SocketIO evento ottengo multipli degli stessi documents il che mi fa pensare che ci sia ancora qualcosa che non sto facendo proprio bene...