说明: 以下内容为mongodb nosql数据库的使用总结
文章目录
monogdb数据库的使用总结
安装 LINUX下
- 下载安装包
链接 - 解压安装包
tar -zxvf your_package.tgz
- 移动至/usr/local/目录下 (自定义)
sudo -mv -r your_package_dir/ /usr/local/mongodb
- 添加可执行文件至环境变量
export PATH=/usr/local/mongodb/bin:$PATH
启动
- 服务端
mongod --config
- 连接
mongo -h -p
数据类型
- Object ID: 文档ID
- 是一个12字节的十六进制数
- 前4个字节为当前时间戳
- 接下来3个字节为机器的ID
- 接下来的三个字节为Mongodb的服务进程ID
- 最后三个字节是简单的增量值
- Sting: 字符串,utf8
- Boolean: 布尔值
- Integer: 整数,32位或64位,取决于设备
- Double: 浮点型
- Arrays: 数组或列表
- Object: 嵌入式文档,一个值为一个文档
- Null: Null值
- Timestamp: 时间戳
- Date: 存储日期或时间的UNIX格式
常用命令
基本
database
- 常看当前使用数据库
db
- 查看所有的数据库
show dbs/databases
- 切换数据库
use dbname
- 删除当前数据库
db.dropDatabase()
colection
- 创建集合(向一个不存在的集合插入数据时会自动创建)
db.createCollection(name, options)
db.createCollection("testCollection")
db.createCollection("sub", {capped: true, size:10})
- 查看集合
show collections
- 删除集合
db.collection_name.drop()
增
插入
- db.collection_name.insert(document)
- db.collection_name.insert({name: “ceaqw”, age: 19})
- db.collection_name.insert({_id: “20200523”, name: “ceaqw”})
- 不指定_id则程序自动创建Object ID
删
- db.collection_name.remove(, {justOne: })
- query: 查询条件
- justOne: 可选,删除的数量,默认为false,表示删除多条
改
- db.collection_name.update(, <update, {mutli: }>)
- query: 查询条件
- update: 更新操作符
- mutli: 可选,默认false,表示只找到第一条记录
- db.test.update({name: “hr”}, {name: “ceaqw”})
- 更改一条(其他信息改变)
- db.test.update({name: “hr”}, {$set:{name: “ceaqw”}})
- 更新一条(其他信息不变)
- db.test.update({name: “ceaqw”}, {$set:{name: “ttt”}}, {mutli: true})
- 更新全部
mutli update only works with $ operators
- 更新全部
查
- db.collection_name.find()
- db.collection_name.findOne()
- 查询一条
- db.collection_name.find({query_filter}).pretty()
- 美观输出
比较运算符
- db.collection_name.find({age: {$gte: 20}})
- $lt 小于
- $gt 大于
- $lte 小于等于
- $gte 大于等于
- $ne 不等于
逻辑运算符
- and
- db.collecotion_name.find({age:{$gte: 18}, name: “ceaqw”})
- or
- db.collection_name.find({$or:[{age: 18}, {name: “ceaqw”}]})
范围查询
- $in 在某个范围
- db.collection_name.find({age:{$in:[18, 28]}})
- $nin 不在某个范围
正则表达式
- 使用/regex_synatx/或$regex
- 查询名字以c开头的学生
- db.dtu.find({name: /^c/})
- db.stu.find({name: {$regex: “^c”}})
limit skip
- limit 限制读取的数据数目
- db.collection_name.find().limit(NUMBER)
- skip 掉过指定数目的数据
- db.collection_name.find().dkip(NUMBER)
- 同时使用
- db.collection_name.find().skip(2).limit(5)
自定义查询
- $where
- 查询奈年龄大于18的学生
db.stu.find(
$where: function(){
return this.age > 18;
})
投影
- db.collection_name.find({}, {filed_name:1,…})
- 字段对应数字为0不显示, 1显示 _id默认显示
- db.stu.find({}, {name: 1, age: 0})
排序
- sort() db.collection_name.find().sort({filed:1, …})
- 字段参数为1升序, -1降序
统计个数
- count() db.collection_name.find({filter}).count()
去重
- distinct() db.collection_name.distinct(‘filter_filed’, {filter})
- 根据地址去重,年龄大于18
- db.stu.distinct(“hometown”, {age:{$gt:18}})
保存
- db.collection_name.save()
其余更详细的查询命令稍后更新