2018年9月26日(周三)

Travis CI

在GitHub上,可以显示这样的小图标
在这里插入图片描述

这样的图标可以通过 travis-cicodecov来实现,并且是免费的,你可以跟随以下步骤完成图标的展示。

注册github账号

进入github注册账号后,按照提示,新建一个可用的项目
在这里插入图片描述

授权

想要使用travis-ci和codecov,必须拿到github的授权,授权方式为:
登录网站 https://travis-ci.com/https://codecov.io,然后分别使用GitHub账号登录,跟着提示操作,授权即可
在这里插入图片描述
在这里插入图片描述

添加项目

在travis-ci添加你想要构建的项目,步骤如下
点击头像进入settings页面
在这里插入图片描述

添加你想要构建的项目
在这里插入图片描述
如果你还想进行其他配置,可以点击Settings进入配置页面操作

增加 .travis.yml文件

在刚建的项目内新建文件 .travis.yml,.travis.yml文件的作用就是在代码提交的时候travis-ci会根据该配置文件执行配置的任务

常用的配置
language: node_js // 指定编程语言

sudo: false // 如果指定为false,则运行于默认的Ubuntu14.04上。也可以通过设置 sudo:enable 来自己指定运行环境

branches: // 指定构建的分支
  only: // 指定构建的分支
    - master
  except: // 过滤构建分支
  	- develop

node_js: // 指定node_js的版本
  - '8'
  - '9'

before_install
	- xx

install: // 下载构建依赖
  - npm i 

before_script
	-xx 

script: // 执行命令
  - npm run test

after_script:
  - npm install codecov && codecov // 执行codecov,会自动去https://codecov.io测试覆盖率

使用环境变量
点击more options进入设置页面
在这里插入图片描述
在此设置环境变量
在这里插入图片描述

环境变量在.travis.yml使用

....
script
	- npm run test ${variable} // 以${xx}来使用
....

展示图标

此上步骤已完成项目的构建,但是想要显示小图标还得需要如下配置
在项目的README.md文件中加入如下内容

[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Test coverage][codecov-image]][codecov-url]

name:为github账户名,使用自己的用户名替代
project:为项目名,使用自己的项目替代

[npm-image]: https://img.shields.io/npm/v/${project}.svg?style=flat-square
[npm-url]: https://npmjs.org/package/${project}
[travis-image]: https://img.shields.io/travis/${name}/${project}.svg
[travis-url]: https://travis-ci.org/${name}/${project}
[codecov-image]: https://img.shields.io/codecov/c/github/${name}/${project}.svg?style=flat-square
[codecov-url]: https://codecov.io/github/${name}/${project}?branch=master

将修改后的内容推到你的github仓库,过一会你就能看到小图标啦

Mongodb

find

find查找字段为Array类型的数据,使用Mongodb版本 4.0.1

find({"key.key":xx}) 
// 对比
find({
	key:{
		$elemMatch:{key:xx}
	}
})

有如下数据

{
    "_id" : ObjectId("5bab4584b142f592ccc7fdfe"),
    "age" : [ 
        {
            "s" : 18,
            "e" : 30
        }, 
        {
            "s" : 50,
            "e" : 70
        }
    ]
}
find({
	'age.s':{$lt:45},
	'age.s':{$gt:45}
}) //这样的查询字段为 18-70都会被匹配到
find({
	age:{
		$elemMatch:{
			s:{$lt:45},
			e:{$gt:45}
		}
	}
}) // 这样的话匹配不到任何数据 只有满足 18-30或50-70才会匹配

结论:

  • find({“key.key”:xx}):如果数组存在多个元素,那么会使用数组整体来比较,数组中任何字段满足,则结果为true
  • find(key:{KaTeX parse error: Expected 'EOF', got '}' at position 13: elemMatch:{}}̲):如果使用elemMatch操作符,那么数组比较是按照分组来比较,只有数组中单个数据满足(而不是整体满足)则结果为true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值