一、Mongodb 数据类型
Mongodb 是一种文档型数据库,支持许多数据类型,包括以下常见的数据类型:
1. 字符串类型
字符串类型是 Mongodb 中最常见的数据类型之一。可以使用双引号或单引号来表示一个字符串。
db.products.insert({ name: "iPhone", description: "Apple iPhone X" })
2. 数值类型
数值类型可以表示整数或浮点数。
db.orders.insert({ order_no: 1001, price: 599.99 })
3. 日期类型
日期类型可以表示一个日期和时间。
db.log.insert({ event: "login", time: ISODate("2020-10-15T09:25:00Z") })
4. 布尔类型
布尔类型只有两个取值,即 true 和 false。
db.users.update({ name: "Tom" }, { $set: { active: true } })
5. 数组类型
数组类型可以存储多个值。
db.students.insert({ name: "John", grades: [90, 95, 88, 92] })
6. 对象类型
对象类型可以储存多个键值对的集合。
db.users.insert({ name: "Tom", contact: { email: "tom@example.com", phone: "123456789" } })
二、Mongoose 常用CURD
Mongoose 是一个 Node.js 的 ODM(Object Document Mapping)工具,可以用来操作 Mongodb。常用的 CURD 操作包括 create、read、update、delete。
1. 创建数据
创建数据可以使用 create 方法。以下是一个例子:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
name: String,
age: Number,
email: String,
});
const User = mongoose.model('User', userSchema);
const user = new User({
name: 'Tom',
age: 30,
email: 'tom@example.com',
});
user.save()
.then(() => console.log('User created'))
.catch((err) => console.error(err));
2. 读取数据
读取数据可以使用 find 方法。以下是一个例子:
User.find({})
.then((users) => console.log(users))
.catch((err) => console.error(err));
上面的代码会返回 users 集合中的所有文档。您也可以使用 find 方法来找到特定的文档。
3. 更新数据
更新数据可以使用 updateOne 方法或 updateMany 方法。以下是一个例子:
User.updateOne({ name: 'Tom' }, { age: 31 })
.then(() => console.log('User updated'))
.catch((err) => console.error(err));
上面的代码将 users 集合中名为 Tom 的文档的年龄更新为 31。
4. 删除数据
删除数据可以使用 deleteOne 方法或 deleteMany 方法。以下是一个例子:
User.deleteOne({ name: 'Tom' })
.then(() => console.log('User deleted'))
.catch((err) => console.error(err));
上面的代码将 users 集合中名为 Tom 的文档删除。
5. 聚合数据
聚合数据可以使用 aggregate 方法。以下是一个例子:
User.aggregate([
{ $match: { age: { $gte: 30 } } },
{ $group: { _id: '$name', count: { $sum: 1 } } }
])
.then((result) => console.log(result))
.catch((err) => console.error(err));
上面的代码将找到 users 集合中所有年龄大于等于 30 岁的文档,并按照 name 字段进行分组,并统计每组文档数量。
6. Indexes
用索引可以提高读取数据的效率。可以使用 createIndex 方法来创建索引。以下是一个例子:
userSchema.index({ name: 1 }, { unique: true });
上面的代码将在 name 字段上创建一个唯一索引。
以上是 Mongodb 数据类型及 Mongoose 常用CURD 的简介,希望对您有帮助。