14.data.js
时间:2022-07-25
本文章向大家介绍14.data.js,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
dict_data = {
"_id":1,
name:"王五",
age:55,
gender:true
}
db.stu.insert(dict_data)
db.stu.insert({_id:1,name:"李四",age:38,gender:true,like:"??"})
db.stu.insert({_id:2,name:"张三",age:48,gender:true,like:"??"})
db.stu.insert({_id:3,name:"王五",age:58,gender:true,like:"??"})
db.stu.insert({_id:4,name:"小红",age:18,gender:false,like:"??"})
db.stu.insert({_id:5,name:"小兰",age:28,gender:false,like:"??"})
db.stu.insert({_id:6,name:"小明",age:10,gender:true,like:"??"})
db.stu.insert({_id:7,name:"小丽",age:30,gender:false,like:"??"})
db.stu.insert({_id:8,name:"A",age:30,gender:false,like:"??"})
db.stu.insert({_id:9,name:"小明",age:10,gender:true,like:"??"})
db.stu.insert({_id:10,name:"小丽",age:30,gender:false,like:"??"})
db.stu.find({
$where:function () {
return this.age > 20
}
})
# 聚合查询查询
db.xx.aggregate(
[
{管道1},
{管道2}
]
)
// $group 分组; 男女分组性别分组
db.stu.aggregate([{$group:{_id:"$gender"}}])
// 表达式 $sum $avg $first $last $max $min $push
// 按照 写别分组 ,求年龄之和
db.stu.aggregate(
[
{$group:{_id:"$gender",sumage:{$sum:"$age"}}}
]
)
db.stu.aggregate(
[
{$group:{_id:"$gender",sumage:{$avg:"$age"}}}
]
)
// 按照爱好分组, 求最大值 age
db.stu.aggregate([
{$group:{_id:"$like",max_age:{$max:"$age"}}}
])
db.stu.aggregate([
{$group:{_id:"$like",max_age:{$min:"$age"}}}
])
db.stu.aggregate([
{$group:{_id:"$like",max_age:{$first:"$age"}}}
])
db.stu.aggregate([
{$group:{_id:"$like",max_age:{$last:"$age"}}}
])
// 统计 这批人按性别分养的宠物
db.stu.aggregate([
{
$group:{_id:"$gender",animate:{$push:"$like"}}
}
])
// $match == find; 区别在于 find 不能使用管道传递
// 宠物是小鸡的 人有哪些?
db.stu.find({like:"??"})
db.stu.aggregate([
{$match:{like:"??"}}
])
// 求 年龄大于20; 男女年龄的平均值
db.stu.aggregate([
{$match:{age:{$gt:20}}},
{$group:{_id:"$gender",avgage:{$avg:"$age"}}}
])
// $project 投影,显示的字段 显示1or true
// 求年龄小于50;求按照爱好分组, 求年龄之和 求年龄平均值,; 只想看之和
db.stu.aggregate([
{$match:{age:{$lt:50}}},
{$group:{_id:"$like",sumage:{$sum:"$age"},avgage:{$avg:"$age"}}},
{$project:{sumage:true}}
])
// $sort 排序
db.stu.aggregate([
{$sort:{age:-1}}
])
db.stu.aggregate([
{$match:{age:{$lt:50}}},
{$group:{_id:"$like",sumage:{$sum:"$age"},avgage:{$avg:"$age"}}},
{$project:{sumage:true}},
{$sort:{sumage:1}}
])
// 跳过2个 显示5
db.stu.aggregate(
[
{$skip:2},
{$limit:5}
])
db.stu.aggregate(
[
{$limit:5},
{$skip:2},
])
// $unwind 拆分列表; $push
// 男女分组,之后 各自的名字有哪些
db.stu.aggregate([
{$group:{_id:"$gender",allname:{$push:"$name"}}},
{$unwind:"$allname"}
])
// 年龄小于60岁,按照性别分组,取出喜欢的宠物, 拆分文档
db.stu.aggregate(
[
{$match:{age:{$lt:60}}},
{$group:{_id:"$gender",animate:{$push:"$like"}}},
{$unwind:"$animate"}
]
)
// 50W 的数据
for (var i = 0; i <= 500000; i++) {
db.data.insert(
{
_id:i,
user:"user"+i,
age:i
})
}
// _id 1毫秒
db.data.find({_id:333333}).explain('executionStats')
// user 222毫秒 -- 1毫秒
db.data.find({user:"user333333"}).explain('executionStats')
// age 227毫秒 --- 0毫秒
db.data.find({age:333333}).explain('executionStats')
// 设置 内容key 为id ;提高查询速度
db.data.ensureIndex({user:1})
db.data.ensureIndex({age:1})
// 查看索引
db.data.getIndexes()
// 删除索引
db.data.dropIndex('key_1')
// 备份数据库
mongodump -h 127.0.0.1:27017 -d five -o /Users/apple/Desktop/beifen
// 恢复数据库
mongorestore -h 127.0.0.1:27017 -d six --dir /Users/apple/Desktop/beifen/five
// 导出文件
mongoexport -h 127.0.0.1:27017 -d six -c stu -o data.json
mongoexport -h 127.0.0.1:27017 -d six -c stu -o data.csv --type csv -f _id,user,age,like
// 导入文件
mongoimport -h 127.0.0.1:27017 -d seven -c stu --file data.json
- React Native库版本升级与降级
- Java并发学习之Volatile及内存模型探究
- Java并发学习之CountDownLatch实现原理及使用姿势
- Linux基础(day58)
- 携程Android App插件化和动态加载实践
- 15.5 使用pure-ftpd搭建ftp服务
- JDK容器学习之Queue: ArrayBlockingQueue
- 手机APP安装包缩减方案
- react-native添加redux支持
- Java并发学习之ReentrantLock的工作原理及使用姿势
- Linux基础(day63)
- IOS WebView控件详解
- Java并发学习之synchronized使用小结
- 18.3/18.4/18.5 用keepalived配置高可用集群
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python中值传递还是引用传递?
- 基于Docker+Jenkins+Git的集成开发环境搭建
- python 函数的本质理解
- centOS(离线) off-line install docker-ce
- Java 工厂 Simple Factory&Factory&Abstract Factory
- python 性能的优化
- python中列表的常见操作
- Aop 源码解读
- python字典的合并排序添加查询
- python numpy pandas
- 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
- Spring Bean的解析和加载详细解释
- ucgui在嵌入式linux下的移植
- java 类的加载
- 分组查询时,select的字段是否一定要都在group by中?