完整例子
const mongoose = require('./db');
const UserSchema = mongoose.Schema({
name: String,
age: Number,
sn: {
type: String,
index: true
}
})
module.exports = mongoose.model('User', UserSchema, 'users_suoyin')
查询集合中的所有索引
$ db.users_suoyin.getIndexes()
Model.deleteOne()
Model.find()
Model.findById()
Model.findByIdAndDelete()
Model.findByIdAndRemove()
Model.findByIdAndUpdate()
Model.findOne()
Model.findOneAndDelete()
Model.findOneAndRemove()
Model.findOneAndUpdate()
Model.replaceOne()
Model.updateMany()
Model.updateOne()
路径:model/user.js
const mongoose = require('./db');
const UserSchema = mongoose.Schema({
name: String,
age: Number,
sn: {
type: String,
index: true
}
})
// 扩展curd
// 方法1:静态方法
UserSchema.statics.findBySn = function (sn, cb) {
// 通过find获取sn数据,this获取当前的model
this.find({'sn': sn}, function(err, doc) {
cb(err, doc)
})
}
// 方法2:实例方法(基本不哟空)
UserSchema.methods.print = function() {
console.log('我是实例方法');
console.log('this',this);
// this指向new UserModel, this.name = suoyin, 不常用
}
module.exports = mongoose.model('User', UserSchema, 'users_suoyin')
const UserModel = require('../model/user.js')
// 调用静态方法
UserModel.findBySn('1-2', (err, doc) => {
if(err){ console.log('err', err); return }
console.log('doc: ', doc);
})
// 调用实例方法
const user = new UserModel({
name: 'suoyin',
age: 20,
sn: '1-3'
})
user.print()
实例的this指向new UserModel, this.name = suoyin, 不常用。常用的是静态方法