mongoose的使用-typescript

编写数据类型的schema
import { Schema, Model, model, Document } from 'mongoose';

export interface OrderDocument extends Document {
user: string;
type: string;
status: number;
currencyCode: string;
paymentTypes: string;
price: string;
unit: string;
quantity: number;
minAmount: number;
maxAmount: number;
description: string;
createTime?: string;
updateTime?: string;
}
设置schema的是否必须以及类型以及关联的数据库
const OrderSchema: Schema = new Schema({
user: { type: Schema.Types.ObjectId, require: true, ref: 'User'},
price: { type: String, required: true },
type: { type: String, required: true, default: 'sell', enum: [ 'sell', 'buy'] },
status: { type: Number, required: true, default: 0, enum: [ 0, 1, 2] },
currencyCode: { type: String, required: true, default: 'btc' },
paymentTypes: { type: String, required: true, default: '1' },
unit: { type: String, required: true, default: 'CNY' },
quantity: { type: Number, required: true, default: 0 },
minAmount: { type: Number, required: true, default: 0 },
maxAmount: { type: Number, required: true, default: 0 },
description: String,
createTime: { type: Date, default: Date.now },
updateTime: { type: Date, default: Date.now },
});
将整个schema导出为文档类型
export const OrderModel: Model<OrderDocument> = model( 'Order', OrderSchema);

mongoose用法

1. 查询

OrderModel.find()

 OrderModel.findById(id)




OrderModel.findOne()

2. 更新

 orderModel.update({

    //要跟新的数据

})

3. 删除

    orderModel.remove({})   

4. 增加

orderModel.create({})

官网有多种api -> 地址

http://mongoosejs.com/docs/api.html#Model


分页:

OrderModel.find().skip(page*limit).limit(limit)

说明:limit为 每页的数据的条数

      skip为忽略的数据,从page*limit条后查找

找不确定的数据。

orderModel.find().or([{ buyer: id }, { seller: id }])

说明:为找到buyer的值为id或者seller的值为id的数据

联合查询

orderModel.find().populate([{path: 'seller'}, {select: 'nickname'}]);

说明:联合查询Schema中定义的要查询的表-并对返回的数据进行过滤,只返回联合查询的表中特定的数据






    


OrderModel.find()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值