mongoose链接操作数据库

1.连接数据库

import * as mongoose from 'mongoose';
mongoose.connect(uri, options);
mongoose.connection.on('connected', () => {
      Logger.info(`数据库连接成功 -  ${uri}`);
    });

2.设置Schema

import * as mongoose from 'mongoose';
import * as paginate from 'mongoose-paginate';

const HotRecommendSchaema = new mongoose.Schema({
  name: { type: String ,set(val){
		// 拦截这个字段的数据可以进行需要的修改操作
		return "001"+name;
	}},
  author: { type: String },
  // 简介
  content: { type: String },
  // 封面
  cover: { type: String, default: '' },
  // 下面字段里都是验证
  test: {
	type: any,
	default: '',
	required: true,//必填
	max: 20,//用于Number,最大值
	min: 10,//用于Number,最小值
	enum: ["a","b","c"],//枚举,所传值只能是数组里面的,用于String
	match: /^nb(.*)/,//正则验证,以"nb"开头
	maxlength: 20, // 字符串长度
	minlength: 10
  },
  // 0不展示,1展示
  state: { type: Number, default: 0 },
  // 0不删除,1删除
  delete: { type: Number, default: 0 },
  // 创建时间
  create_at: { type: Date, default: Date.now },
  // 最后修改日期
  update_at: { type: Date }
}, {
  // 增加自动时间戳
  timestamps: { createdAt: 'created_at', updatedAt: 'update_at' }
});

// 自定义方法,由Schaema直接调用
HotRecommendSchaema.statics.findByName = name => {
	
}


// 翻页 
HotRecommendSchaema.plugin(paginate);
// 监听save方法,上面已经定义了默认值,这个可以不加
HotRecommendSchaema.pre('save', function (next) {
  this.create_at = new Date();
  next();
});
// export
/*
	第一个参数数据库名称
	第二个是上面定义
	第三个是表名,可以不定义
*/
export default mongoose.model('HotRecommend', HotRecommendSchaema);

3.操作(数据)

多表关联

// 订单表
import OrderModel from "./OrderModel";
// 表关联查询操作
const ones = OrderModel.aggregate([
	{
		$lookup:{
			from: "order_item",//查询的表名
			localField: "order_id",//根据字段
			foreignField: "order_id",//查询的字段
			as: "items"//放入到哪个字段
		}
	},
	{
		$limit: 10 // 限制搜索条数
	},
	{
		$skip: 100 // 跳过条数
	}
	{
		$match: {_id: mongoose.Types.ObjectId("....")} // 筛选条件
	}
]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装mongoose 在命令行中执行以下命令: ``` npm install mongoose ``` 2. 连接数据库Node.js中使用mongoose连接数据库需要先引入mongoose模块: ```javascript const mongoose = require('mongoose') ``` 接着使用mongoose.connect()方法连接数据库: ```javascript mongoose.connect('mongodb://localhost:27017/databaseName', { useNewUrlParser: true }) ``` 其中,mongodb://localhost:27017/databaseName是连接数据库的URL,其中localhost为数据库服务器地址,27017为MongoDB的默认端口号,databaseName为要连接的数据库名称。 { useNewUrlParser: true }是Mongoose的一个选项,以允许在连接时使用新的URL字符串解析器。 3. 定义Schema和Model 在使用mongoose之前,需要先定义Schema和Model。Schema是用来定义数据结构的,Model是由Schema生成的实例。 ```javascript const Schema = mongoose.Schema const userSchema = new Schema({ username: String, password: String, email: String }) const User = mongoose.model('User', userSchema) ``` 以上代码定义了一个名为User的Model,该Model对应的Schema定义了三个属性:username、password和email。 4. CRUD操作 通过定义好的Model可以进行CRUD操作。以下是一些常用的操作: - 新增数据 ```javascript const user = new User({ username: 'Tom', password: '123456', email: 'tom@example.com' }) user.save(function (err, user) { if (err) return console.error(err) console.log(user.username + ' saved to database.') }) ``` - 查询数据 ```javascript User.find(function (err, users) { if (err) return console.error(err) console.log(users) }) ``` - 更新数据 ```javascript User.findOneAndUpdate({ username: 'Tom' }, { password: '654321' }, function (err, user) { if (err) return console.error(err) console.log(user) }) ``` - 删除数据 ```javascript User.deleteOne({ username: 'Tom' }, function (err) { if (err) return console.error(err) console.log('User deleted.') }) ``` 以上代码演示了如何使用mongoose连接MongoDB数据库,并进行CRUD操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值