在Mongoose中检索副本集状态

我正在构build一个从MongoDB集群读取的Node.js应用程序。 该应用程序使用Mongoose与Mongo进行通信。

我想build立一个function,可以告诉我,什么mongoose知道MongoDB副本集实时(如调用rs.status() ),但到目前为止,我无法find任何种类的互联网上的信息。

这样做的目的是为了能够监视副本集中是否发生了更改,并在需要时将其报告回来。

问题是,在这个主题上,我至今没有在网上find任何东西。 有没有人有任何想法如何启动它? 如果我可以使用当前的mongoose关系来达到这个目的,那将会很好。

你可以做到这一点,但你需要连接到“pipe理”数据库,你可能会需要一个不同的连接,而不是其他的应用程序使用。 就像是:

 var mongoose = require("mongoose"); mongoose.connect( "mongodb://localhost:27017,localhost:27018,localhost:27019/test"); var conn = mongoose.createConnection( "mongodb://localhost:27017,localhost:27018,localhost:27019/admin"); conn.on("open",function() { conn.db.command({"replSetGetStatus":1 },function(err,result) { console.log( result ); }); }); 

等待连接build立也很重要,因此“事件”callback。 Mongoose将在内部“排队”自己的方法操作,直到build立连接,但是在抓取本地db对象的句柄并从中执行方法时,这不适用。