多个连接
const test = async () => {
try {
const UserScheme = mongoose.Schema({
id: String,
name: String
})
const connection1 = new mongoose.createConnection("mongodb://localhost:27018/test1")
const connection2 = new mongoose.createConnection("mongodb://localhost:27018/test2")
const UserModel1 = connection1.model("users", UserScheme, "users")
const UserModel2 = connection2.model("users", UserScheme, "users")
await UserModel1.create({ id:"1", name: "张三"})
await UserModel2.create({ id:"1", name: "张三"})
} catch (error) {
console.log(error);
}
}
test()
副本集连接
const mongoose = require('mongoose');
const username = encodeURIComponent('admin'); // 特殊字符需转义
const password = encodeURIComponent('pass@123');
const hosts = 'mongo1:27017,mongo2:27018,mongo3:27019'; // 副本集节点
const dbName = 'mydb';
const replicaSet = 'rs0';
const uri = `mongodb://${username}:${password}@${hosts}/${dbName}?replicaSet=${replicaSet}&authSource=admin`;
mongoose.connect(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
readPreference: 'primary', // 默认读主节点
maxPoolSize: 10 // 连接池大小
});
// 监听连接事件
mongoose.connection.on('connected', () => console.log('✅ 已连接副本集主节点'));
mongoose.connection.on('error', (err) => console.error('❌ 连接失败:', err));
mongoose.connection.on('disconnected', () => console.log('⚠️ 连接断开'));