如何访问mongoose.js中的oplog?

时间:2013-09-18 12:54:40

标签: node.js mongodb mongoose

我有使用mongoose.js的应用。 直到现在我使用mongod的单个实例。但最近我改为复制品。

我如何在mongoose.js中访问oplog集合?我是说如何从另一个db(local)获取集合?所以,假设我已连接到db并拥有mongoose.connection - 我现在如何查询oplog?

1 个答案:

答案 0 :(得分:8)

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

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

你说你有兴趣这样做是为了在oplog中查看新条目,所以你可能希望在连接到“本地”数据库后在“oplog.rs”集合上使用tailable游标成立,例如:

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)
        }
    })
});

希望这有帮助,如果您有其他问题,请与我们联系。