mongodb 在C盘下创建/data/db 目录之后打开命令行工具 输入 mongod 启动数据库服务
然后另外再打开一个命令行工具输入 mongo 连接数据库 输入exit 表示断开数据库
基本命令
show dbs
显示已有数据库
db
查看当前操作的数据库
use itcas
t数据库名称 切换到指定的数据(如果没有会新建)
插入数据
db.students.insertOne({“name”:”Jack”}) //在数据库中写入一个数据
{
“acknowledged” : true,
“insertedId” : ObjectId(“5c2dcf57064d9d048d67fd25”)
}
则显说明成功
展示数据
进入到要查看的目录 show collections 显示当前数据库中的集合
db.stduents.find() { “_id” : ObjectId(“5c2dcf57064d9d048d67fd25”), “name” : “Jack” } 默认自带id
在Node中如何操作mongodb
使用官方的api文档
mongoose 的初步感知 增加数据
//npm 中安装成功之后就导入mongoose包
var mongoose=require('mongoose')
//获取数据库中的架构
var Schema=mongoose.Schema
//1.连接数据库
//指定连接的数据不存在,当你插入第一条数据成功之后会自动创建出这个数据库
mongoose.connect('mongodb://localhost/itcast')
//2.设计集合 文档结构(表结构)
//字段名称就是表结构中的属性名称
//约束的目的是为了保证数据的完整性
var userSchema=new Schema({
username:{
type:String,
required:true //必须有
},
password:{
type:String,
required:true //必须有
},
email:{
type:String //可有可无 可以为空
}
})
//3.将文档架构发布为模型
var User=mongoose.model('User',userSchema)
// mongoose.model() 方法就是用来将一个架构发布为model
//第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称
// mongoose 会自动将大写名词的字符串生成小写复数的集合名称
//例如这里的User最终会变成 user 集合名称
//第二个参数: 架构Schema
//返回值:模型构造函数
//4.当我们有了模型构造函数之后,就可以使用这个构造函数对user集合中的数据进行增删改查操作了
var admin=new User({
username:'admin',
password:'123465',
email:'admin@qq.com'
})
admin.save(function(err,ret){
if(err){
console.log('保存失败')
}
else{
console.log('保存成功')
console.log(ret)
}
})
查询数据
//查询所有
User.find(function(err,ret){ //使用find()方法
if(err){
console.log('查询失败')
}else{
console.log('查询成功')
console.log(ret)
}
})
按条件查询
User.find({
username:'zs' //输入查询的条件
},function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log('查询成功')
console.log(ret)
}
})
查询结果
[ { _id: 5c2eff160aee562740330ea9,
username: 'zs',
password: '123465',
email: 'admin@qq.com',
__v: 0 } ]
//是一个数组
查询单个结果
User.findOne({ //findOne方法
username:'zs'
},function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log('查询成功')
console.log(ret)
}
})
查询结果
{ _id: 5c2eff160aee562740330ea9,
username: 'zs',
password: '123465',
email: 'admin@qq.com',
__v: 0 }
//是个对象 不是数组
删除数据
User.remove({
username:'zs' //删除条件 会删除数据中含有 username:'zs' 的所有数据
},function(err){
if(err){
console.log('删除失败')
}else{
console.log('删除成功')
}
})
删除结果
(node:8092) DeprecationWarning: collection.remove is deprecated.
Use deleteOne, deleteMany, or bulkWrite instead.
//删除成功
更新数据
User.findByIdAndUpdate('5c2ef4dd42db282be4bb5eb8',{
password:'123' //修改密码为 123
},function(err,ret){
if(err){
console.log('更新失败')
}else{
console.log('更新成功')
console.log(ret)
}
})
//使用 findByIdAndUpdate(id,{修改键值对},callback) 进行修改
完成了使用mongoose 的基本的CRUD操作