MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Novos resultados do Mongoose QueryStream


Descobri que, para que esse método funcionasse, eu precisava alterar minha coleção para uma 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');
});

Isso funciona porque agora posso tratar a MongoDB collection como uma fila de mensagens, que é continuamente atualizada.

Estranhamente quando eu envolvo isso dentro de um SocketIO evento eu recebo múltiplos dos mesmos documents o que me faz pensar que ainda há algo que não estou fazendo exatamente certo...