Node.js 如何访问mongoose.js中的oplog?

Node.js 如何访问mongoose.js中的oplog?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个应用程序正在使用mongoose.js。 到目前为止,我使用的是mongod的单个实例。但最近我改成了复制集 如何在mongoose.js中访问oplog集合?我的意思是如何从另一个db(local)获取数据集?假设我已连接到db并拥有mongoose.connection-现在如何查询oplog?您可以使用mongoose.connect方法访问mongoose中的另一个数据库,使用MongoDB URL指定数据库。例如,要连接到找到oplog的“本地”数据库: mongoose.co

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


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

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

mongoose.connect('mongodb://localhost/local')
您说您有兴趣这样做是为了观察oplog中的新条目,因此在建立到“local”数据库的连接后,您可能希望在“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)
        }
    })
});

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

这将告诉您如何切换数据库,以便您可以这样做:为什么要这样做?没有充分的理由从生产应用程序访问oplog。它仅用于管理和故障排除目的,可从mongo shell访问。我想在将某些数据插入数据库时进行侦听。。。