# 三.启动与连接

# 1.配置项启动

参数 含义
--dbpath 指定数据库文件的目录
--port 端口 默认是 27017 28017
--fork 以后台守护的方式进行启动
--logpath 指定日志文件输出路径
--config 指定一个配置文件
--auth 以安全方式启动数据库,默认不验证

# 1.1 mongo.conf

dbpath=E:\mongo\data
logpath=E:\mongo\log
port=50000
1
2
3

# 1.2 启动服务器

mongod --config mongo.conf
1

# 1.3 启动客户端

mongo --port 50000
1

# 2.连接 mongodb

# 2.1 connect 连接

var mongoose = require("mongoose") // 引入 mongoose
var url = "mongodb://localhost:27017/mytest" // 本地数据库地址
mongoose.connect(url)
var db = mongoose.connection
db.on("error", console.error.bind(console, "connection error:"))
db.once("open", function () {
  console.log("Successful connection to " + url)
})
1
2
3
4
5
6
7
8

# 2.2 使用 mongodb

var Schema = mongoose.Schema //schema 都会映射到一个 MongoDB collection
let user = {
  name: String,
}
var userSchema = Schema(user)
var User = mongoose.model("User", userSchema) //将schema编译为model构造函数
var newUser = new User({ name: "yyyyyyyyyyyy" }) // Mongoose 会自动找到名称是 model 名字复数形式的 collection
newUser.save()
1
2
3
4
5
6
7
8

# 2.3 多个连接

到目前为止,我们已经看到了如何使用 MongoDB 的默认连接。有时我们可能需要 mongo 打开多个连接,每个有不同的读/写设置,或者只是对不同的数据库为例。在这些情况下,我们可以利用 mongoose.createConnection()接受已经讨论过的所有参数,并返回一个新的连接。

var conn = mongoose.createConnection('mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]
1

# 2.4 连接池

每个连接,无论是用 mongoose.connect 还是 mongoose.createConnection 创建都用一个默认大小为 5 的内置可配置连接池备份。使用的连接选项调节其大小,

var uri = "mongodb://localhost/test"
mongoose.createConnection(uri, { server: { poolSize: 4 } })
mongoose.createConnection(uri, { replset: { poolSize: 4 } })
var uri = "mongodb://localhost/test?poolSize=4"
mongoose.createConnection(uri)
1
2
3
4
5