代码之家  ›  专栏  ›  技术社区  ›  user606521

如何在mongoose.js中访问oplog?

  •  5
  • user606521  · 技术社区  · 11 年前

    我有正在使用的应用程序 mongoose.js . 到目前为止,我使用的是 mongod 。但最近我换了副本集。

    如何在mongoose.js中访问oplog集合?我的意思是如何从另一个数据库中获取集合( local )? 假设我连接到数据库,并且 mongoose.connection -现在如何查询操作日志?

    1 回复  |  直到 11 年前
        1
  •  9
  •   joeytwiddle    8 年前

    您可以使用mongoos.connect方法访问mongoose中的另一个数据库,使用MongoDB URL指定数据库。例如,要连接到找到操作日志的“本地”数据库:

    mongoose.connect('mongodb://localhost/local')
    

    你说你有兴趣这样做是为了观察oplog中的新条目,所以一旦建立了与“本地”数据库的连接,你可能会想在“oplog.rs”集合上使用一个可定制的光标,例如:

    mongoose.connection.once('open', function callback () {
        var collection = mongoose.connection.db.collection('oplog.rs')
        collection.find({}, {tailable: true}).each(function(err, entry) {
            if (err) {
                // handle error                                                                                                                                                    
            } else {
                // got a new oplog entry                                                                                                                                           
                console.log('--- entry', entry)
            }
        })
    });
    

    希望这能有所帮助,如果你还有其他问题,请告诉我。