安装 注意事项
在`Mongodb`官网下载最新版本的[Mongodb下载地址](https://cloud.mongodb.com/)
下载`msi`的`window`安装包,可以装到C盘或者D盘目录下
> 由于我是安装在D盘的环境下
>
> ```shell
> D:\Program Files (x86)\MongoDB\Server\3.2\bin
> ```
>
> 所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行`mongod --dbpath x路径x`,路径可以是任何地方,我这里选择在D盘的MongoDB目录下,当然路径不要包含特殊的字符串,比如`Program Files (x86)`也不行
>
> ```shell
> mongod --dbpath D:\mongodb\data\db
> ```
>
> ![image](https://user-images.githubusercontent.com/17243165/31977540-fc0a5a6e-b96f-11e7-9a2b-34d66d7241c4.png)
默认安装c盘 安装时不要勾选 install compass 否则可能会持续在安装中
安装完成运行指令 mongod 则复制c盘 Program Files/mongodb/bin文件 复制目录 将其配置到系统环境变量中即可
数据库
-------启动数据库 开启指令:mongod (如果自启动 就无需执行该指令)
-------连接数据库:mongo
-------无问题就查看数据库:show dbs
-------创建数据库:use dbname
use有两个功能
1、新建数据库 没有该数据库 use表示新建
2、切换数据库 有该数据库 use表示切换到该数据库 新建的数据库为空是一个临时的库
------删除数据库: db.dropDatabase()
删除前一定要切换到需要删除的库 use 1823 --db.dropDatabase()
------查数据库:show dbs 查询所有的数据库
db 查询当前使用的db
集合 (即数据库里的表)不要以数字命名集合
-------增加集合:db.createCollection(‘users‘) users即集合的名字
------删除集合:db.name.drop() 需要切换到当前集合 然后执行该指令
------查找集合 show collectoins()
文档(即表格中的数据内容)
-------增加数据:db.collecionName.insert({obj})
-------删除数据:db.collecionName.remove({条件}) 是一个空对象时 表示全部删除
-------修改数据:db.collectionName.updata(查询条件,修改($set),修改全部)
-------查找数据:db.collectionName.find(查询条件)
db.collectionName.find().pretty() 将查询后的结果进行格式化
db.collecitonName.save()//有该条数据表示修改 没有该条数据表示新插入 根据_id 判断是否存在
分页
db.user.find().skip(0).limit(2) 1-2 1页
db.user.find().skip(2).limit(2) 3-4 2页
db.user.find().skip(4).limit(2) 5-6 3页
公式:db.user.find().skip((page-1)*pageSize).limit(pageSize)
固值查找
db.user.find({name:‘李四‘,age:30})
范值查找
db.user.find({age:{$ite:30}}) 查找年龄小于等于30 大于等于详看官方文档
且或 $and $or
db.user.find({$and:[{name:李四},{age:39}]})
db.user.find().skip(2)跳过2条数据
db.user.find().limit(3) 截取3条数据
db.user.find().skip().limit()跳过数据再截取数据
db.user.find().sort({age:18}:1) 排序 1升序 -1降序
通过node的mongoose 插件操作数据库 (mongodb也是操作数据库的插件)
mongoose 插件有封装好的promise 可以直接使用then方法等
1. 下载mongoose npm
2. 连接数据库
3. 创建schema对象
4. 将schema转化为数据模型
5. 通过数据模型执行查询操作
var mongoose = require(‘mongoose‘);
// 此插件内部已有封装好的promis对象 可以使用.then方法
mongoose.connect(‘mongodb://localhost:27017/1823‘);//默认占用端口27017 于数据库1823进行连接
var db = mongoose.connection;// 获取连接对象进行监听
db.on(‘error‘,(err)=>{
console.log(‘连接错误‘)
});
db.on(‘open‘, function() {
console.log(‘连接ok‘)
});
// 创建schema 对象 理解成一个表头
var UserSchema = new mongoose.Schema({
name: String,
age :Number,
pass: String,
});
// 4. 将schema转化为数据模型
let user = mongoose.model(‘logs‘, UserSchema); //参数1 是集合的名字 与数据模型关联的schema对象
// 注意注意:参数1数据库里数据表的名字一定是复数形式 如果不是复数会默认变成复数格式 这样就插不到原来的log表里了 而是在logs里
// 5.进行数据库的操作
//插入数据
user.insertMany([{name:"张三",age:18,pass:123},{name:"李四",age:18,pass:345},{name:"王五",age:18,pass:434}])
.then((data)=>{
console.log(data);
})
.catch((err)=>{
console.log(err)
})
// 查找
// user.find({name:‘李四‘,pass:345})
// .then((data)=>{
// console.log(data)
// })
// .catch((err)=>{
// console.log(err)
// })
//删除
// user.deleteMany({name:‘张三‘})
// .then((data)=>{
// console.log(data.deletedCount)
// })
// 修改
user.updateMany({name:‘李四‘},{name:‘六六‘})
.then((data)=>{
console.log(data)
})
.catch((err)=>{
console.log(err)
})
原文地址:https://www.cnblogs.com/lucktomiao/p/10421233.html