一 . 预备操作
1.安装
npm i mongoose
输入mongod --version测试是否安装成功
2.开启与关闭数据库
# mongodb 默认使用执行mongod 命令所处盘符根目录下的/data/db作为自己的数据存储目录
# 所以在第一次执行该命令之前先自己手动新建一个 /data/db
开启:mongod
关闭:Ctrl+C
3.连接数据库
mongo
退出:exit
4.基本命令
1)show dbs
查看数据库列表(数据库中的所有数据库)
2)db
查看当前连接的数据库
3)use 数据库名称
切换到指定的数据库,(如果没有会新建)
4)show collections
查看当前目录下的所有数据表
5)db.表名.find()
查看表中的详细信息
二 . MongoDB操作
1.设计Scheme 发布Model (创建表)
//引包
var mongoose = require('mongoose');
//拿到schema图表
var Schema = mongoose.Schema;
//1.连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据后就会被自动创建出来
mongoose.connect('mongodb://localhost/newbox')
//2.设计文档结构
//字段名称就是表结构中的属性名称
//约束的目的是为了保证数据的完整性,不要有脏数据
var userSchema = new Schema({
username: {
type: String,
required: true
},
password: {
type: String,
required: true
},
email: {
type: String
}
});
//3.将文档结构发布为模型
//mongoose.model方法就是用来将一个架构发布为 model
// 第一个参数:传入一个大写名词单数字符串用来表示你的数据库的名称
// mongoose 会自动将大写名词的字符串生成 小写复数 的集合名称
// 例如 这里会变成users集合名称
// 第二个参数:架构
// 返回值:模型构造函数
var User = mongoose.model('User', userSchema)
//4.当我们有了模型构造函数之后,就可以使用这个构造函数对 users集合进行增删改查
2.增加数据
//增加数据
var admin = new User({
username: 'admin',
password: '123',
email: 'admin@362266'
})
admin.save(function (err, ret) {
if (err) {
console.log('保存失败');
} else {
console.log('保存成功');
console.log(ret);
}
})
3.查询
//查询所有
User.find(function(err,ret){
if(err){
console.log('查询失败');
}else{
console.log(ret);
}
});
//条件查询所有
User.find({ username:'xiaoxiao' },function(err,ret){
if(err){
console.log('查询失败');
}else{
console.log(ret);
}
});
//条件查询单个
// 按照条件查询单个,查询出来的数据是一个对象({})
// 没有条件查询使用findOne方法,查询的是表中的第一条数据
User.findOne({
username: 'xiaoxiao'
}, function(err, ret) {
if (err) {
console.log('查询失败');
} else {
console.log(ret);
}
});
4.删除
User.remove({
username: 'xiaoxiao'
}, function(err, ret) {
if (err) {
console.log('删除失败');
} else {
console.log('删除成功');
console.log(ret);
}
});
根据条件删除一个:
Model.findOneAndRemove(conditions,[options],[callback]);
根据id删除一个:
User.findByIdAndRemove(id,[options],[callback]);
5.更改
更新所有:
User.remove(conditions,doc,[options],[callback]);
根据指定条件更新一个:
User.FindOneAndUpdate([conditions],[update],[options],[callback]);
根据id更新一个:
User.findByIdAndUpdate('5e6c5264fada77438c45dfcd', {
username: 'junjun'
}, function(err, ret) {
if (err) {
console.log('更新失败');
} else {
console.log('更新成功');
}
});