前端js操作mongodb用到了mongoose
使用前先安装
$ npm install mongoose
配置连接数据库(官网示例)
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
连接失败/成功的回调
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
// 略
});
当然在实际项目中,我们可以对数据库的连接做一些自定义设置
export const mongooseOcr = mongoose.createConnection('mongodb://localhost/test', {
useNewUrlParser: true,
autoReconnect: true,
poolSize: 10,
keepAlive: 1,
connectTimeoutMS: 30000,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 2000,
})
连接之后,这里介绍一下Schema和Model
Schema: 在 Mongoose 中,所有数据都由一个 Schema 开始创建。每一个 schema 都映射到一个 Mongodb 的集合(collection),并定义了该集合(collection)中的文档(document)的形式。
相当于声明表结构信息,不能操作数据库Model: 由Schema发布生成的模型,具有抽象属性
A model is a class with which we construct documents. In this case, each document will be a instance of this class with properties and behaviors as declared in our schema.
如:
import mongoose, { mongooseOcr } from '../../../mongodb'
const { Schema } = mongoose
export const OcrImgSchema = new Schema({
uid: { type: String, require: true, trim: true },
record_id: { type: String, require: true, trim: true },
content_data_uid: { type: String, require: true, trim: true },
type: { type: String, trim: true },
name: { type: String, trim: true },
field_uid: { type: String, trim: true },
url: { type: String, require: true, trim: true },
status: { type: Number, require: true, default: 0 },
reason: { type: String, trim: true },
createtime: { type: Date, default: Date.now, require: true },
updatetime: { type: Date, default: Date.now, require: true },
data: Schema.Types.Mixed,
ignore: { type: Boolean, default: false },
}, { timestamps: { createdAt: 'createtime', updatedAt: 'updatetime' } })
export default mongooseOcr.model('Ocr_Img', OcrImgSchema)
ps:model第一个参数如果不带s,影射到数据库里的collection名称会带上s
Schema 中的每一个键都定义了一个文档(document)的一个属性。属性类型有:String、Number、Date、Buffer、Boolean、Mixed、ObjectId、Array
Documents are instances of model.
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var Tank = mongoose.model('Tank', schema);
// Constructing documents
var small = new Tank({ size: 'small' });
small.save(function (err) {
if (err) return handleError(err);
// saved略
})