Mongodb 数据类型及Mongoose常用CURD

一、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 的简介,希望对您有帮助。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签