Mongoose模块 ——Nodejs - Mirror198829/database GitHub Wiki

参考文档:https://mongoose.shujuwajue.com/guide/models.html

定位符

let uri = 'mongodb://username:password@hostname:port/databasename';//完整版
uri = 'mongodb://localhost/test'; //简化版,省略用户名和密码就是不用验证,省略端口号默认27017

使用Mongoose模块操作MongoDB

Schema

Mongoose的一切都始于一个Schema。每个schema映射到MongoDB的集合(collection)和定义该集合(collection)中的文档的形式。一个schema相当于数据库里面的一个表

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});

Model

nodejs中对象与mongodb中文档对应的功能
从我们的Schema定义模型的构造函数编译。实例这些模型代表文档可以从我们的数据库中保存和检索。从数据库中依靠这些模型来操作所有文档创建和检索。操作数据库。

示例

//model.js
let mongoose= require('mongoose')
let uri = 'mongodb://username:password@hostname:port/databasename';//定位符
uri = 'mongodb://localhost/test'
mongoose.connect(uri, { useNewUrlParser: true })
let BookSchema = new mongoose.Schema({
	name:String,
	author:String,
	publishTime:Date
})
mongoose.model('Book',BookSchema)  //model命名的时候第1个字大写
//insert.js
let mongoose = require('mongoose');
require('./model.js')
let Book = mongoose.model('Book');
let book = new Book({
	name:'caojing',
	author:'c',
	publishTime:new Date()
})
book.save(function(err){
	console.log('save status:',err ? 'failed' : 'success')
})
//find.js
let mongoose = require('mongoose')
require('./model.js')
let Book = mongoose.model('Book')
Book.find({},(err,docs)=>{
	if(err){
		console.log('err:',err)
		return
	}
	console.log('result:',docs)
})
//findOne.js
let mongoose = require('mongoose')
require('./model.js')
let Book = mongoose.model('Book')
Book.findOne({name:'caojing'},(err,doc)=>{
	if(err){
		console.log('err:',err)
		return
	}
	console.log('result',doc)
})
//remove.js
let mongoose = require('mongoose')
require('./model.js')
let Book = mongoose.model('Book')
Book.findOne({author:'maozedong'},(err,doc)=>{
	if(err){
		console.log('findOne err:',err)
		return
	}
	if(doc){
		doc.remove()
	}
})
//condition.js
let mongoose = require('mongoose')
require('./model.js')
let Book = mongoose.model('Book')
let cond = {
	$or:[            //$or 或者 $on
	{author:'caojing'},
	{author:'jiangpeng'}
	]
}
Book.find(cond,(err,doc)=>{
	if(err){
		console.log('find by cond err:',err)
		return
	}
	console.log('cond:',cond,'results:',doc)
})