// 链接mongoose
const mongoose = require('mongoose');
const db = mongoose.createConnection('mongodb:127.0.0.1:27017/NodeJS');
// 链接错误
db.on('error', error => console.log(error));
// Schema结构
const mongooseSchema = new mongoose.Schema({
username: {type: String, default: '匿名用户'},
title : {type: String},
content : {type: String},
time : {type: Date, default: Date.now()},
age : {type: Number},
isshower: {type: Boolean, default: false}
});
// 添加mongoose实例方法
mongooseSchema.methods.findByUserName = function (userName, callback) {
return this.model('mongoose').find({'username': userName}, callback);
}
// 添加mongoose静态方法,静态方法在model层能直接使用
mongooseSchema.statics.findByTitle = function (title, callback) {
return this.model('mongoose').find({'title': title}, callback)
}
// 创建model
const mongooseModel = db.model('mongoose', mongooseSchema);
let doc = {username: 'model_demo_username', title: 'test_title', content: 'model_demo_content'};
// 增加记录,基于entity操作
let mongooseEntity = new mongooseModel(doc);
mongooseEntity.save((error) => {
error ? throw error : console.log('Save ok');
db.close();
})
// 增加记录,基于model操作
mongooseModel.create(doc, (error) => {
error ? throw error : console.log('Save ok');
db.close();
})
// 修改数据
mongooseModel.update(conditions, update, options, callback);
let conditions = {username: 'model_demo_username'};
let update = {$set: {age: 27, title: 'model_modify_title'}};
let options = {upsert: true};
mongooseModel.update(conditions, update, options, callback, (error) => {
error ? throw error : console.log('update ok')
db.close();
})
// 查询,基于实例方法的查询
let mongooseQuery = new mongooseEntity();
mongooseQuery.findByUserName('model_demo_username', (error, result) => {
error ? throw error : console.log(result);
db.close();
});
// 查询,基于静态方法查询
mongooseModel.findByTitle('model_demo_title', (error, result) => {
error ? throw error : console.log(result);
db.close();
})
// 查询,基于mongoose的find
let query = {title: 'emtity_demo_title'};
let fields = {title: 1, content: 1, time: 1}
let options = {}
mongooseModel.find(query, fields, options, (error, result) => {
error ? throw error : console.log(result);
db.close();
})
// 删除记录
let conditions = {title: 'emtity_demo_title'}
mongooseModel.remove(conditions, error => {
error ? throw error : console.log('delete ok')
db.close();
})
Mongoose的增删改查
猜你喜欢
转载自my.oschina.net/chinahufei/blog/1824659
今日推荐
周排行