update
This commit is contained in:
parent
82be1bb4a6
commit
e5bed9ea40
@ -33,7 +33,7 @@
|
||||
btn.onclick = function() {
|
||||
console.log(getStyle(dv,'left'))
|
||||
console.log(getStyle(dv,'margin-left'))
|
||||
console.log(getStyle(dv,'background'))
|
||||
console.log(getStyle(dv,'backgroundColor'))
|
||||
console.log(getStyle(dv,'width'))
|
||||
}
|
||||
}
|
||||
|
81
20191103/test2.html
Normal file
81
20191103/test2.html
Normal file
@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Document</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
div {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
background: red;
|
||||
position: absolute;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<input type="button" value="400px" id="btn1">
|
||||
<input type="button" value="800px" id="btn2">
|
||||
<div id="dv"></div>
|
||||
<script type="text/javascript">
|
||||
function my$(id) {
|
||||
return document.getElementById(id)
|
||||
}
|
||||
my$('btn1').onclick = function() {
|
||||
changeanimate(my$('dv'),'height',1000)
|
||||
}
|
||||
|
||||
//获取任意元素的任意一个样式的属性值
|
||||
function getStyle(ele,attr) {
|
||||
return window.getComputedStyle(ele,null)[attr] ? window.getComputedStyle(ele,null)[attr] : ele.currentStyle[attr]
|
||||
}
|
||||
|
||||
//改变宽度
|
||||
//任意元素的任意一个属性的变速动画的封装
|
||||
|
||||
function changeanimate(ele, attr, target) {
|
||||
clearInterval(ele.timer)
|
||||
ele.timer = setInterval(function(){
|
||||
var current = parseInt(getStyle(ele,attr))
|
||||
var step = (target - current) / 10
|
||||
step = step > 0? Math.ceil(step) : Math.floor(step)
|
||||
current += step
|
||||
if(target == current) {
|
||||
clearInterval(ele.timer)
|
||||
ele.timer = null
|
||||
}
|
||||
ele.style[attr] = current + 'px';
|
||||
},10)
|
||||
}
|
||||
|
||||
function changeanimate(ele,json) {
|
||||
//假设都到达的时候
|
||||
var flag = true;
|
||||
clearInterval(ele.timer)
|
||||
//遍历
|
||||
for(var attr in json) {
|
||||
ele.timer = setInterval(function(){
|
||||
var current = parseInt(getStyle(ele,attr))
|
||||
var step = (json[attr] - current) / 10
|
||||
step = step > 0? Math.ceil(step) : Math.floor(step)
|
||||
current += step
|
||||
if(json[attr] != current) {
|
||||
// clearInterval(ele.timer)
|
||||
// ele.timer = null
|
||||
flag = false
|
||||
}
|
||||
ele.style[attr] = current + 'px';
|
||||
},10)
|
||||
}
|
||||
if(flag) {
|
||||
clearInterval(ele.timer)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
0
20191106/20191106.md
Normal file
0
20191106/20191106.md
Normal file
9
Miscellaneous/flask.md
Normal file
9
Miscellaneous/flask.md
Normal file
@ -0,0 +1,9 @@
|
||||
#flask
|
||||
|
||||
* venv
|
||||
* 关闭 `deactivate`
|
||||
|
||||
* 在路由中
|
||||
* 同时有user/ 和 user 优先解释 user/
|
||||
* 只有 user 的情况下 访问user/会报404
|
||||
* 只有 user/ 的情况下 访问user会被重定向
|
7
Miscellaneous/linux.md
Normal file
7
Miscellaneous/linux.md
Normal file
@ -0,0 +1,7 @@
|
||||
# linux
|
||||
|
||||
查看所有端口占用情况
|
||||
`netstat -ntlp`
|
||||
|
||||
创建文件
|
||||
`touch`
|
309
Miscellaneous/mongoDB.md
Normal file
309
Miscellaneous/mongoDB.md
Normal file
@ -0,0 +1,309 @@
|
||||
# mongoDB
|
||||
|
||||
### 创建新用户
|
||||
```js
|
||||
db.createUser(
|
||||
{
|
||||
user: "yingbo",
|
||||
pwd: "623910ert",
|
||||
roles: [ { role: "dbAdmin", db: "yingbo" },{ role: 'readWrite', db: "yingbo"} ]
|
||||
}
|
||||
)
|
||||
|
||||
db.createUser(
|
||||
{
|
||||
user: "admin",
|
||||
pwd: "rqRrjTDaq9",
|
||||
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
|
||||
}
|
||||
)
|
||||
```
|
||||
|
||||
### log目录 `/var/log/mongodb/mongod.log`
|
||||
|
||||
### db目录 `/var/lib/mongo`
|
||||
|
||||
### 配置文件 `/etc/mongod.conf`
|
||||
|
||||
### 端口 12236
|
||||
|
||||
### 启动/重启/停止 `sudo service mongod start/restart/stop`
|
||||
|
||||
### 开启用户认证 conf 文件加
|
||||
```
|
||||
security:
|
||||
authorization: enabled
|
||||
```
|
||||
### 登录
|
||||
``` c
|
||||
//方法一
|
||||
mongo --port 12236 -u "admin" -p "rqRrjTDaq9" --authenticationDatabase "admin"
|
||||
//方法二
|
||||
db.auth("yingbo", "623910ert")
|
||||
db.auth("admin", "rqRrjTDaq9")
|
||||
```
|
||||
|
||||
### 显示所有数据库
|
||||
`show dbs`
|
||||
|
||||
### 删库
|
||||
```
|
||||
use <dbname>
|
||||
db.dropDatabase()
|
||||
```
|
||||
|
||||
### 显示所有集合
|
||||
`show tables` 或者 `show collections`
|
||||
|
||||
### 创建集合
|
||||
```js
|
||||
//正常情况下直接插入数据就可以自动新建一个集合
|
||||
|
||||
//创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
|
||||
db.createCollection("<collectionName>", { capped : true, autoIndexId : true, size :
|
||||
6142800, max : 10000 } )
|
||||
|
||||
//单纯的新建一个集合
|
||||
db.createCollection("<collectionName>")
|
||||
```
|
||||
|
||||
### 删除集合
|
||||
`db.<collectionName>.drop()`
|
||||
|
||||
### 增
|
||||
`db.<collectionName>.insert(<object>)`
|
||||
|
||||
### 删
|
||||
`db.<collectionName>.remove({key:value})` find里边可以为{}删除全部
|
||||
|
||||
### 改
|
||||
```
|
||||
db.<collectionName>.update(
|
||||
<query>,
|
||||
<update>,
|
||||
{
|
||||
upsert: <boolean>,
|
||||
multi: <boolean>,
|
||||
writeConcern: <document>
|
||||
}
|
||||
)
|
||||
/*
|
||||
query : update的查询条件,类似sql update查询内where后面的。
|
||||
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
|
||||
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
|
||||
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
|
||||
writeConcern :可选,抛出异常的级别。
|
||||
*/
|
||||
```
|
||||
|
||||
### 查
|
||||
`db.<collectionName>.find({key:value})` find里边可以没有参数
|
||||
```
|
||||
//格式化显示
|
||||
db.col.find().pretty()
|
||||
|
||||
//条件语句
|
||||
db.col.find({likes : {$lt :200, $gt : 100}}).pretty() //限制 100<likes<200
|
||||
|
||||
$lt:小于
|
||||
$lte:小于或等于
|
||||
$gt:大于
|
||||
$gte:大于或等于
|
||||
$ne: 不等于
|
||||
|
||||
$type:
|
||||
Double 1
|
||||
String 2
|
||||
Object 3
|
||||
Array 4
|
||||
Binary data 5
|
||||
Undefined 6 已废弃。
|
||||
Object id 7
|
||||
Boolean 8
|
||||
Date 9
|
||||
Null 10
|
||||
Regular Expression 11
|
||||
JavaScript 13
|
||||
Symbol 14
|
||||
JavaScript (with scope) 15
|
||||
32-bit integer 16
|
||||
Timestamp 17
|
||||
64-bit integer 18
|
||||
Min key 255 Query with -1.
|
||||
Max key 127
|
||||
|
||||
//AND
|
||||
db.col.find({key1:value1, key2:value2}).pretty()
|
||||
|
||||
//OR
|
||||
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
|
||||
|
||||
//AND+OR
|
||||
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Limit与Skip方法
|
||||
|
||||
`db.<collectionName>.find().limit(<number1>).skip(<number2>)`
|
||||
|
||||
number1 : 本次查询最多显示条数
|
||||
|
||||
number2 : 本次查询跳过的条数
|
||||
|
||||
---
|
||||
|
||||
## sort() 方法
|
||||
|
||||
`db.<collectionName>.find().sort({<key>:<number>})`
|
||||
|
||||
key : 需要进行排序的键名
|
||||
|
||||
number : 其中 1 为升序排列,而 -1 是用于降序排列
|
||||
|
||||
---
|
||||
|
||||
## createIndex() 方法
|
||||
|
||||
`db.values.createIndex({<key>: <number>, <key>: <number>}, {background: true})`
|
||||
|
||||
key : 需要进行排序的键名
|
||||
|
||||
number : 其中 1 为升序排列,而 -1 是用于降序排列
|
||||
|
||||
建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false。
|
||||
|
||||
---
|
||||
|
||||
## aggregate() 方法
|
||||
|
||||
```
|
||||
db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
|
||||
{
|
||||
"result" : [
|
||||
{
|
||||
"_id" : "runoob.com",
|
||||
"num_tutorial" : 2
|
||||
},
|
||||
{
|
||||
"_id" : "Neo4j",
|
||||
"num_tutorial" : 1
|
||||
}
|
||||
],
|
||||
"ok" : 1
|
||||
}
|
||||
```
|
||||
|
||||
$sum 计算总和。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
|
||||
|
||||
$avg 计算平均值 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
|
||||
|
||||
$min 获取集合中所有文档对应值得最小值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
|
||||
|
||||
$max 获取集合中所有文档对应值得最大值。 db.mycol.aggregate([{$group : {_id :
|
||||
"$by_user", num_tutorial : {$max : "$likes"}}}])
|
||||
|
||||
$push 在结果文档中插入值到一个数组中。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
|
||||
|
||||
$addToSet 在结果文档中插入值到一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
|
||||
|
||||
$first 根据资源文档的排序获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
|
||||
|
||||
$last 根据资源文档的排序获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])
|
||||
|
||||
|
||||
## 管道
|
||||
|
||||
$project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
|
||||
```
|
||||
结果中就只还有_id,tilte和author三个字段
|
||||
db.article.aggregate(
|
||||
{ $project : {
|
||||
title : 1 ,
|
||||
author : 1 ,
|
||||
}}
|
||||
);
|
||||
|
||||
连id一起删除
|
||||
db.article.aggregate(
|
||||
{ $project : {
|
||||
_id : 0 ,
|
||||
title : 1 ,
|
||||
author : 1
|
||||
}});
|
||||
|
||||
```
|
||||
|
||||
|
||||
$match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
|
||||
```
|
||||
db.articles.aggregate( [
|
||||
{ $match : { score : { $gt : 70, $lte : 90 } } },
|
||||
{ $group: { _id: null, count: { $sum: 1 } } }
|
||||
] );
|
||||
```
|
||||
|
||||
$limit:用来限制MongoDB聚合管道返回的文档数。
|
||||
|
||||
$skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
|
||||
```
|
||||
db.article.aggregate(
|
||||
{ $skip : 5 });
|
||||
```
|
||||
$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
|
||||
|
||||
$group:将集合中的文档分组,可用于统计结果。
|
||||
|
||||
$sort:将输入文档排序后输出。
|
||||
|
||||
$geoNear:输出接近某一地理位置的有序文档。
|
||||
|
||||
---
|
||||
|
||||
## MongoDB 复制(副本集)
|
||||
|
||||
等树莓派装完再看
|
||||
|
||||
## MongoDB 分片
|
||||
|
||||
等树莓派装完再看
|
||||
|
||||
## 备份
|
||||
|
||||
`mongodump -h dbhost -d dbname -o dbdirectory`
|
||||
|
||||
|
||||
-h:
|
||||
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
|
||||
|
||||
-d:
|
||||
需要备份的数据库实例,例如:test
|
||||
|
||||
-o:
|
||||
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
|
||||
|
||||
## 恢复
|
||||
|
||||
`mongorestore -h <hostname><:port> -d dbname <path>`
|
||||
|
||||
```
|
||||
--host <:port>, -h <:port>:
|
||||
MongoDB所在服务器地址,默认为: localhost:27017
|
||||
|
||||
--db , -d :
|
||||
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
|
||||
|
||||
--drop:
|
||||
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
|
||||
|
||||
<path>:
|
||||
mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test。
|
||||
|
||||
你不能同时指定 <path> 和 --dir 选项,--dir也可以设置备份目录。
|
||||
|
||||
--dir:
|
||||
指定备份的目录
|
||||
|
||||
你不能同时指定 <path> 和 --dir 选项。
|
||||
```
|
3
Miscellaneous/nginx.md
Normal file
3
Miscellaneous/nginx.md
Normal file
@ -0,0 +1,3 @@
|
||||
# nginx
|
||||
|
||||
service nginx restart
|
Loading…
x
Reference in New Issue
Block a user