从nodejs获取最后更新的mongo ID

GG

我正在使用mongodb和nodejs处理推送通知。我可以在浏览器中看到新添加的通知(在Mongodb中添加了),但是,如果我更新了记录,则该值不会在浏览器中更新

// if no error get reference to colelction named: 'notifications'
    db.collection('notifications', function(err, collection){
        if(err) {
            throw err;
        }

        // if no error apply a find() and get reference to doc
        collection.find().sort({
            $natural: -1
        }).limit(1).nextObject(function(err, doc) {
            // Rewind the cursor, resetting it to point to the start of the query
            if(err) {
                throw err;
            }
            //  using tailable cursor get reference to our very first doc
            var query = {
                _id: {
                    $gt: doc._id
                }
            };
            var options = {
                tailable: true, 
                awaitdata: true, 
                numberOfRetries: -1
            };
            var cursor = collection.find(query, options).sort({
                $natural: 1
            });

            // This function will take cursor to next doc from current as soon as 'notifications' database is updated
            function next() {
                cursor.nextObject(function(err, message) {
                    if (err) throw err;
                    console.log(message.message);
                    mdsok.volatile.emit('notification', message);
                    next();
                });
            }
            // what you need to do is: call it first time
            next();
        });

这就是我在代码中所做的事情。

当我在db中更新值时,应该怎么做才能更新浏览器中的值。

请帮我 。提前致谢!

GG

我的问题在一定程度上得到了解决。

var http = require('http'),
fs = require('fs'),
// NEVER use a Sync function except at start-up!
index = fs.readFileSync('index.html');

// Send index.html to all requests
var app = http.createServer(function(req, res) {
    res.writeHead(200, {
        'Content-Type': 'text/html'
    });
    res.end(index);
});

// Socket.io server listens to our app
var io = require('socket.io').listen(app);
var MongoClient = require('mongodb').MongoClient;

function getdata(){
    MongoClient.connect("mongodb://127.0.0.1:27017/test", function(err, db) {
        var collection = db.collection('my_collection');

        var stream = collection.find({
            //'_id': new ObjectID('53eb6f2e75fd7ad00d000029')
            //_id: ObjectID.createFromHexString("53eb6f2e75fd7ad00d000029")
            }).stream();
        stream.on("data", function(item) {
            io.sockets.emit('db_status', {
                status: item.status
            });
            prev = item.status;
            console.log(prev);
        });
        stream.on("end", function() {
            console.log("Done loading data");
        });
    });
}


// Send current time every 5 secs
setInterval(getdata, 5000);

// Emit welcome message on connection
io.sockets.on('connection', function(socket) {

    socket.emit('welcome', {
        message: 'Welcome!'
    });            

    socket.on('i am client',function(data){
        console.log(data);
    });
});


app.listen(3000);

每隔5秒,我就会命中db,并获取值并将其显示在浏览器中。

为了获得新插入的对象,我们.nextObject()node.js

是否有任何方法可以获取db中的更新对象,如上一节所述node.js

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取最后插入的ID

来自分类Dev

如何获取更新的最后一行ID?

来自分类Dev

技巧“获取MySQL中最后更新的行的ID”如何工作?

来自分类Dev

获取Postgresql的最后插入ID

来自分类Dev

获取最后插入行的 id

来自分类Dev

异常获取最后插入的 id

来自分类Dev

如何获取最后插入的ID,以及如何检查使用php更新查询条件

来自分类Dev

从ID数组到名称数组(Mongo,NodeJS)

来自分类Dev

更新记录后如何获得最后的ID?

来自分类Dev

更新记录后如何获得最后的ID?

来自分类Dev

如何从Laravel 4获取最后的插入ID

来自分类Dev

Laravel 4:获取最后附加记录的ID

来自分类Dev

如何使用Hibernate获取最后插入的ID

来自分类Dev

获取最后插入的varchar id,它是主键

来自分类Dev

从最后插入表中获取ID

来自分类Dev

获取最后插入的行ID(HFSQL)

来自分类Dev

Laravel 4:获取最后附加记录的ID

来自分类Dev

如何获取最后插入的行的ID

来自分类Dev

从mysql表获取最后插入的ID

来自分类Dev

Codeigniter:如何获取最后插入的ID?

来自分类Dev

如何使用AJAX获取最后插入的ID?

来自分类Dev

如何获取特定ID的最后插入记录?

来自分类Dev

获取每个 post_id 的最后结果

来自分类Dev

获取最后添加的节点或关系的 ID

来自分类Dev

mongo:通过id更新文档

来自分类Dev

如何插入 ID +1 并获取最后一个 ID?

来自分类Dev

Postgres获取上次更新ID

来自分类Dev

Postgres获取上次更新ID

来自分类Dev

从mongo查询结果中获取ID