4

我有正在使用的应用程序mongoose.js。到目前为止,我使用的是mongod. 但最近我改为复制集。

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

4

1 回答 1

9

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

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

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

于 2013-09-19T15:03:30.920 回答