我正在构建一个Node.js应用程序,它从MongoDB集群中读取。该应用程序使用Mongoose与Mongo进行通信。
我想构建一个功能,它能够告诉我,mongoose实时了解MongoDB副本集(如调用rs.status()
),但到目前为止我无法找到互联网上的任何信息。
这样做的目的是能够监控副本集中是否有更改,并在需要时将其报告回来。
问题是,到目前为止,我在互联网上找不到这个主题。有没有人知道如何开始它?如果我能为此目的使用当前的猫鼬连接,那就太好了。
答案 0 :(得分:2)
你可以这样做,但你需要连接到" admin"数据库,除了应用程序的其余部分使用之外,您可能还需要一个不同的连接。类似的东西:
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 );
});
});
等待连接建立也很重要,因此"事件"打回来。猫鼬将在内部"排队"它是自己的方法操作,直到建立连接,但是当抓取本地db
对象的句柄并从中执行方法时,这不适用。