1、double类型减法问题:
56.1 - 40 = 16.1;无误差
66.1 - 40 = 26.099999999999994;有误差
出现以上情况,是因为double类型相减会转换成二进制,16位存储小数位不够,因此会出现误差
2、MongoDB学习
首先安装好MongoDB和robo 3T(MongoDB图形界面)
1)MongoDB是一种nosql的非关系型数据库
MongoDB与mysql:MongoDB中的要素:数据库,集合,文档;mysql:数据库,表,行。MongoDB中的集合对应mysql的表,文档对应行。
2)创建集合:db.createCollection("mydata")
3)插入文档:
db.mydata.insert({
id:"1",
name:"yk"
sex:"F",
age:22
})
4)更新文档:
db.mydata.update({
<query>,
<update>,
{
upsert:<boolean>,
multi:<boolean>
}
})
参数说明:
query:update的查询条件,与sql语句where后面的类似
update:update的对象和一些更新的操作符,与set类似
upsert:可选参数,如果不存在,是否插入,默认为false
multi:可选参数,只更新第一条记录,如果为true,则更新所有查询出来的记录,默认为false
示例:更新一条记录:db.update( {name:"yk"} , {$set:{age:20}} )
更新所有查询出来的记录:db.update( {name:"yk"} , {$set:{age:20}} , {multi:true} )
5)删除文档:db.mydate.remove( <query>,{<justOne>} )
query:可选,删除文档的条件
justOne:可选,如果为true或1,则只删除一个文档
示例:db.mydate.remove( {name:"yk"} )
6)查询文档:db.mydata.find().pretty():查询文档:pretty():以格式化的方式显示文档
db.mydata.find( {name:"yk" , age:22} ).pertty()
MongoDB的or条件
db.mydate.find( {
$or:[
{key1:value1} , {key2:value2}
]
} )
示例:db.mydate.find( {$or:[ {name:"yk"} , {sex:"F"} ]} ).pertty()
And与Or联合使用:类似sql:where age>18 and (name="yk" or sex="F")
db.mydata.find( {age:{$gt:18} , $or:[{name:"yk"} , {sex:"F"}]} ).pertty()
7)条件操作符
< : $lt
> : $gt
= : $eq
!= : $ne
<= : $lte
>= : $gte
< > : $lt $gt :使用示例:db.mydata.find( {age : {$lt : 30, $gt : 10 }} ).pertty()
8)$type操作符
MongoDB中的数据类型:
类型 数字
Double 1
String 2
Object 3
Array 4
Object id 7
Boolean 8
Date 9
Null 10
查询age为double类型的数据:db.mydata.find({age : {$type : 1}})
查询name为String类型的数据:db.mydata.find({name : {$type : 2}})
9)排序:升序:1;降序:-1
db.mydata.find({"name" : {$type : 2}}).sort({age : -1})
标注:文章摘自菜鸟教程