We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用 Mongoose 可以很简单地操作 MongoDB 数据库。
需要通过 uri 指定所需连接数据库的路径, 格式为:
'mongodb://username:password@host:port/database?options...'
连接和断开连接时可以指定回调, 如下便是一个连接示例:
const mongoose = require('mongoose') const uri = "mongodb://127.0.0.1:27017/db" mongoose.connection.on('connected', () => { console.log("连接成功"); }) mongoose.connection.on('error', () => { console.log("连接失败"); }) mongoose.connection.on('disconnected', () => { console.log("失去连接"); }) mongoose.connect(uri)
也可以简化一下:
mongoose.connect(uri, (err) => { if(err) console.log(err) else console.log("连接成功"); })
Mongoose 中的一切都源于 Schema, 每个模式都映射到一个 MongoDB 集合,并定义该集合中文档的形状。
上面这段话来自于官方文档, 可能读起来有点迷糊, 没关系, 目前只需要知道他就像一种模式, 可以用来定义一些数据的格式, 那, Schema 怎么定义数据格式?
举个例子:
const UserSchema = new Schema({ name: {type: String, require: true}, age: {type: Number, require: true}, })
与此同时, 还可以定义更多的类型:
String Number Date Buffer Boolean Mixed ObjectId Array
Model(模型) 是通过 Schema 生成的构造器, 用于生成文档实例和操作数据库
const User = mongoose.model('User', UserSchema) // 第一个参数会被 mongoose 转为小写复数形式, 作为 collection 集合的名字
除此之外, Model还提供了增删查改的功能:
增加一个文档:
Model.create({ name: "xiaohua", age: 18 },(err,mes) => { if(err) console.error(err); else console.log(mes); })
插入多条:
User.insertMany([{ name: "yilei", age: 20 }, { name: "yilei", age: 60 }], (err, doc) => { if (err) console.error(err) console.log(doc); })
除了可以用 Model 上的静态方法生成文档, 还可以通过实例化 Model 的方式生成文档, 然后用实例方法 save() 保存
删除一条:
User.deleteOne({ name: "xiaoli" }, (err) => { if(err) console.error(err) })
删除多条:
User.deleteMany({ name: "yilei" }, (err, doc) => { if (err) console.error(err) console.log(doc); })
User.find({ name: "xiaoli" }, (err, doc) => { if(err) console.error(err) console.log(doc); }) // 匹配规则还可以更复杂一点, 比如我要找 10 =< 年龄 <= 99 的 User.find({ age: {"$gt": 10, "$lt": 99} }, (err, doc) => { if(err) console.error(err) console.log(doc); })
除此之外, Model 上还有 findById, findOne, where等静态方法
更改一条:
User.updateOne({ name: "yilei" },{age: 21}, (err, doc) => { if (err) console.error(err) console.log(doc); })
更改多条:
User.updateMany({ name: "xiaoli" },{age: 21}, (err, doc) => { if (err) console.error(err) console.log(doc); })
在 Mongodb 中, Document(文档) 即数据
每个 Document 都是一个 Model 的实例
文档可以用 save() 方法保存
// 实例化 document let user = new User({ name: "xiaohua", age: 18 }) // 保存 user.save((err,mes) => { if(err) console.error(err); else console.log(mes); })
也可以用上述的 Model.create() Model.insertMany() 创建
Model.create() Model.insertMany()
The text was updated successfully, but these errors were encountered:
No branches or pull requests
用 Mongoose 可以很简单地操作 MongoDB 数据库。
1. 引入并连接
需要通过 uri 指定所需连接数据库的路径, 格式为:
'mongodb://username:password@host:port/database?options...'
连接和断开连接时可以指定回调, 如下便是一个连接示例:
也可以简化一下:
2. Schema
上面这段话来自于官方文档, 可能读起来有点迷糊, 没关系, 目前只需要知道他就像一种模式, 可以用来定义一些数据的格式, 那, Schema 怎么定义数据格式?
举个例子:
与此同时, 还可以定义更多的类型:
3. Model
Model(模型) 是通过 Schema 生成的构造器, 用于生成文档实例和操作数据库
除此之外, Model还提供了增删查改的功能:
增
增加一个文档:
插入多条:
除了可以用 Model 上的静态方法生成文档, 还可以通过实例化 Model 的方式生成文档, 然后用实例方法 save() 保存
删
删除一条:
删除多条:
查
除此之外, Model 上还有 findById, findOne, where等静态方法
改
更改一条:
更改多条:
4. Document
在 Mongodb 中, Document(文档) 即数据
每个 Document 都是一个 Model 的实例
save
文档可以用 save() 方法保存
也可以用上述的
Model.create() Model.insertMany()
创建The text was updated successfully, but these errors were encountered: