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)
})