下载完mongo安装后
- 建立数据连接池(先找找不到执行启动失败的操作)
- 在我的电脑,右键,管理,服务和应用程序,服务,找到MongoDB服务项,右键,启动
- 启动成功,表示自动建立成功
- 找到mongo的安装目录
- 使用cmd进入bin文件夹
- 执行:mongo
,回车,输入help,查看帮助信息
- 能看到帮助信息,OK
!!!- 启动失败,需要手动建立连接池(或没找到MongoDB服务,或免安装版)
- 找到mongo的安装目录,
- 在某个盘的根目录,新建一个data文件夹
- 使用cmd进入bin文件夹
- 在cmd中执行:mongod --dbpath 刚才的data文件夹的绝对路径
,回车
- 再开启一个新的cmd,进入bin文件夹
- 执行:mongo
,回车,输入help,查看帮助信息
- 能看到帮助信息,OK
2. 登录
- 在进入了bin文件夹的cmd中,执行:`mongo`,回车
- 输入help,查看帮助信息,能看到帮助信息,OK
- 此时可以进行mongo数据库的操作
mongoDB数据库的帮助
命令 | 说明 |
---|---|
help | 帮助文档 |
db.help() | 数据库帮助文档 |
db.test.help() | 数据库集合帮助文档 |
db.test.find().help() | 数据库集合查询帮助文档 |
数据库操作
- 创建并选择文档(无则创建,有则选择)
use dbName
- 查询
db
查看当前数据库
show dbs
查看所有数据库
注:在查看所有数据库时,不显示空数据库 - 显示数据库信息
db.start()
查看数据库状态信息
db.getMongo()
查看数据库连接地址
db.version()
查看数据库版本信息
db.getName()
查看当前数据库名称 - 删除数据库----慎用
db.dropDatabase()
集合的创建
- 创建集合
db.createCollection(name,options)
name :集合名,字符 options:可选,为对象(一般默认)
- 删除集合
db.colName.drop()
- 查看所有集合
show collections
- 查看当前集合名称
db.getCollectionNames()
(数组形式显示)
数据的操作
1.用户信息设计
- 用户名: name
- 年 龄: age
- 城 市: city
增加数据 (colName为创建的数据集合)
插入单条:db.colName.insert({})
插入多条:db.colName.insert([{},{},...])
插入单条:db.colName.insertOne({})
插入多条:db.colName.insertMany([{},{},…]) **node中只支持这条**
删除数据
根据指定的键值对条件:
删除单条数据:db.colName.deleteOne({key:val})
删除多条数据:db.colName.deleteMany({key:val})
删除所有数据:db.colName.deleteMany({})
修改数据
根据指定的键值对条件:
修改单条数据:db.colName.updateOne({key:val},{$set:{key1:newVal,key2:newVal}})
修改多条数据:db.colName.updateMany({key:val},{$set:{key1:newVal,key2:newVal}})
Num为正自增,为负自减
自增/自减单条数据:db.colName.updateOne({key:val},{$inc:{key1:num}})
自增/自减多条数据:db.colName.updateMany({key:val},{$inc:{key1:num}})
查询数据
-
基本查询所有数据
db.colName.find()
-
格式化查询所有数据:
db.colName.find().pretty()
更好的查看数据 -
指定键值对条件查询:
db.colName.find({key:val})
-
指定条件查询(可以为{}表示所有数据),并限制字段显示:
db.colName.find({key:val},{userName:1, pass:1})
· 第二个对象设置字段为1是inclusion模式,指定返回的键,不返回其他键
db.colName.find({key:val},{userName:0, pass:0})
· exclusion模式,指定不返回的键,返回其他键
两模式不能同时设置
·注意:_id默认返回,如果不需要,需主动设置_id:0 此可与inclusion共同存在 -
分页查询:
db.colName.find({key:val}).limit(num).skip(start)
num:表示个数 start:表示起始索引,默认为0 从第index*num也开始查询,查询num条,index为当前页码的索引
-
排序查询:
db.colName.find({key:val}).sort({key:1})
1升序,-1降序
-
区间查询: - 如价格区间
db.colName.find({ key: {$lt:val1, $gt:val2} })
小于val1,大于val2
db.colName.find({ key: {$lte:val1, $gte:val2} })
小于等于val1,大于等于val2
$lt 小于 $gt 大于 $lte 小于等于 $gte 大于等于 -
模糊查询: - 搜索
db.colName.find({ key: /val/})
查询key中包含val的数据
db.colName.find({ key: /^val/})
查询key中包含val且以val开头的数据(中写正则)
- 或查询: - 用户名或手机号登录
db.colName.find({ $or: [{key1:val1},{key2:val2}] })
查询key1为val1或key2为val2的数据
- 且查询:
db.colName.find({ key1:val1, key2:val2 })
查询key1为val1且key2为val2的数据
11.获取指定字段的数据: - 分类
db.colName.distinct("key")
获取指定字段的所有数据,去重并以数组的形式返回