mongoDB
这是我在学习mongodb时的学习笔记,希望对大家有帮助:
-
安装:
www.runoob.com/mongode下载安装 -
存储目录:
mongoDB默认在所属根目录下的/data/db/作为数据存储目录路径,所以可以手动创建data目录
-
安装完后,用后台管理器检查安装版本
输入mongod --version,如果有版本信息,说明安装成功
使用
- 进入mongoDB:mongo
- 退出:exit
基本命令
show dbs
- 查看显示所有数据
db
- 查看当前操作的数据库
use数据库名称
- 切换到指定的数据库
- 插入数据
在Node中使用mongoDB
使用官方的mongodb包来操作
在npm官网中搜索mongodb
使用第三方mongoose来操作mongoDB数据库
第三方包:mongoose:https://mongoosejs.com/
mongoose
1. 起步
安装:npm i mongoose
hello world:
var mongoose = require('mongoose');
//链接数据库
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});
``//创建模型,设计数据库
var Cat = mongoose.model('Cat', { name: String });
//实例化一个cat
var kitty = new Cat({ name: 'Zildjian' });
持久化保存kitty数据实例
kitty.save().then(() => console.log('meow'));
mongoDB数据库的基本概念
-
数据库
-
集合
-
文档
{ qq:{ users:[ {name: 'zhan',age: 13}, {name: 'zhan1',age: 13}, {name: 'zhan2',age: 13} ], products:[ ], ... }, taobao:{ }, baidu:{ }
}`
设计模型
设计Schema架构
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//1.链接数据库
//指定数据库不需要存在,当插入第一条数据时会自动创建
mongoose.connect('mongodb://localhost/itcast')
//2.设计集合(表)结构
//
// 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
// }
// });
var userSchema = new Schema({
username: {
type: String,
required: true //必须有,不能为空
},
password: {
type: String,
required: true
},
email: {
type: String
}
});
//3.将文档结构发布为模型
// mongoose.model方法用来将一个架构发布为model
// 第一个参数:大写名词单数字符串表示数据库名称
// mongoose会自动将大写生成小写复数的集合名称
// User-->users
// 第二个:架构Schema
// 返回值:模型构造函数
var User = mongoose.model('User',userSchema)
增加数据
`// 1.增加数据
var admin = new User({
username: 'admin',
password: '123456',
email: 'admin@qq.com'
})
//持久化保存数据
admin.save(function(err,ret){
if(err){
console.log('保存失败')
}else{
console.log('保存成功')
console.log(ret)
}
})`
查询数据
//查询所有数据
User.find(function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log(ret)
}
})
按条件查询:(按名字查找)
User.find({
username: 'admin'
},function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log(ret)
}
})
只查询一个:findOne
- 当没有条件时,默认返回第一个数据内容
删除数据
User.remove({
username: '张飒'
},function(err,ret){
if(err){
console.log('删除失败')
}else{
console.log('删除成功')
console.log(ret)
}
});
根据条件删除一个:
User.findOneAndRemove(conditions,[options],[callback])
根据id删除一个:
User.findByIdAndRemove(id,[options],[callback])
更新数据
// 更新数据
// **************************************
User.findByIdAndUpdate('5f01451bb470b943604e9763',{
password: '123'
},function(err,ret){
if(err){
console.log('更新失败')
}else{
console.log('更新成功')
console.log(ret)
}
})