find操作详解

find语法:

db.[documentName].find({条件},{键指定})

1 查询出所有数据的指定键(name,age,country)

0:不显示 1:显示

db.persons.find({},{name:1,age:1,country:1,_id:0})
> db.persons.find({},{name:1,age:1,country:1,_id:0})
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "zhangsan", "age" : 27, "country" : "USA" }

2.查询指定文档中的数据

查询所有: db.[documentName].find()
查询第一条数据: db.[documentName].findOne()

精确查找:
约定:

符号 含义 符号 含义
$lt 小于 $ne 不等于
$lte 小于或者等于 $or 或运算
$gt 大于 $and 与运算
$gte 大于或等于 $exists 包含或者不包含
$in 在范围内 $nin 不在范围内

原始admin中所有的内容:

> db.admin.find()
{ "_id" : 1, "name" : "tom1", "age" : 23 }
{ "_id" : ObjectId("58247292f5c9ed83ca65cfd9"), "name" : "tom3", "age" : 33 }
{ "_id" : 4, "name" : "iphone", "age" : 44 }
{ "_id" : ObjectId("58247541c60186988c96cc67"), "gender" : "male", "age" : 44 }
{ "_id" : 2, "age" : 22, "gender" : "male" }

2.1 查找 age 小于 30 的文档

> db.admin.find({age:{$lt:30}})
{ "_id" : 1, "name" : "tom1", "age" : 23 }
{ "_id" : 2, "age" : 22, "gender" : "male" }*

2.2 查找age范围在30(包含)和40(不包含)之间的文档

> db.admin.find({age:{$gte:30,$lt:40}})
{ "_id" : ObjectId("58247292f5c9ed83ca65cfd9"), "name" : "tom3", "age" : 33 }

2.3 查找返回key值在1,2之间的记录

> db.admin.find({_id:{$in:[1,2]}})
{ "_id" : 1, "name" : "tom1", "age" : 23 }
{ "_id" : 2, "age" : 22, "gender" : "male" }

2.4 返回不包含name字段的所有记录(true为包含)

> db.admin.find({name:{$exists:false}})
{ "_id" : ObjectId("58247541c60186988c96cc67"), "gender" : "male", "age" : 44 }
{ "_id" : 2, "age" : 22, "gender" : "male" }

2.5 嵌套查询

{
"_id":ObjectId("xxxxxxxxxxxxxxxxx"),
"id":1,"name":"xiaohong",
"detail":[ {"sex":"female","age":105},
{"address":"china","post":5} ]
}

查询post等于5的文档:

db.customers.find( {‘detail.1.post’:5} )

对结果进行过滤,只返回 id 和 name 两个字段:

db.customers.find( {‘detail.1.post’:5} ,{_id:0, id:1, name:1})

对所有结果按照 id 进行降序排列():

db.customers.find({}).sort({id:-1})

先对结果集进行降序排序,然后跳过10行,从这个位置开始返回接下来的5行

db.find({}).skip(10).limit(5).sort({id:-1})

2.6 数组

原始数据:

> db.admin.find()
{ "_id" : 4, "AttributeName" : "material", "AttributeValue" : [ "牛仔", "织棉", "雪纺", "蕾丝" ], "IsOptional" : 1 }
{ "_id" : 5, "AttributeName" : "version", "AttributeValue" : [ "收腰型", "修身型", "直筒型", "宽松型", "其他" ], "IsOptional" : 1 }

a.精确匹配数组值

> db.admin.find({"AttributeValue":["收腰型","修身型","直筒型","宽松型","其他"]})
{ "_id" : 5, "AttributeName" : "version", "AttributeValue" : [ "收腰型", "修身型", "直筒型", "宽松型", "其他" ], "IsOptional" : 1 }

b.匹配数组中的一个元素值
只要这些元素中包含有这个值,就会返回这条文档

> db.admin.find({"AttributeValue":"收腰型"})
{ "_id" : 5, "AttributeName" : "version", "AttributeValue" : [ "收腰型", "修身型", "直筒型", "宽松型", "其他" ], "IsOptional" : 1 }

如果其他记录中的”AttributeValue”数组也包含这个值,也会作为结果返回

c.匹配指定位置的元素值
表示数组中第0个位置的元素值为”收腰型”的记录才返回

> db.admin.find({"AttributeValue.4":"其他"})
{ "_id" : 5, "AttributeName" : "version", "AttributeValue" : [ "收腰型", "修身型", "直筒型", "宽松型", "其他" ], "IsOptional" : 1 }

d.指定数组索引并匹配嵌套文档中的字段值
(新插入的文档)StatusInfo是一个嵌套文档的数组,描述的是订单
{ “_id” : 7, “StatusInfo” : [ { “status” : 9, “desc” : “已取消” }, { “status” : 2, “desc” : “已付款” } ] }

> db.admin.find({"StatusInfo.1.status":2})
{ "_id" : 7, "StatusInfo" : [ { "status" : 9, "desc" : "已取消" }, { "status" : 2, "desc" : "已付款" } ] }

发现返回的内容太多,返回的是整个文档,而不是单一的值
可以对查询进行优化,让其只返回StatusInfo字段

> db.admin.find({"StatusInfo.1.status":2},{_id:0,StatusInfo:1})
{ "StatusInfo" : [ { "status" : 9, "desc" : "已取消" }, { "status" : 2, "desc" : "已付款" } ] }

内容还是太多,让其只返回StatusInfo字段中的status就行了(别忘了加” “号!!):

> db.admin.find({"StatusInfo.1.status":2},{_id:0,"StatusInfo.desc":
1})
{ "StatusInfo" : [ { "desc" : "已取消" }, { "desc" : "已付款" } ] }

实际需求更苛刻,要求返回当前订单的最新状态(在数组中也就是表示最后一条记录),
这时就需要用到数组投射的特定操作符:$slice

> db.admin.find({"_id":7},{_id:0,"StatusInfo":{"$slice":-1} ,"StatusInfo.desc":1})
{ "StatusInfo" : [ { "desc" : "已付款" } ] }

第二组数据举例:

准备数据:
学生信息: 包括姓名name、年龄age、email、语文成绩c、数学成绩m、英语成绩e、国际country、喜欢看的书books

{ "_id" : ObjectId("582bd556f343ce738faa723c"), "name" : "jim", "age" : 25, "email" : "75431457@qq.com", "c" : 89, "m" : 96, "e" : 87, "country" : "USA", "books" : [ "JS", "C++", "EXTJS", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa723d"), "name" : "tom", "age" : 25, "email" : "214557457@qq.com", "c" : 75, "m" : 66, "e" : 97, "country" : "USA", "books" : [ "PHP", "JAVA", "EXTJS", "C++" ] }
{ "_id" : ObjectId("582bd556f343ce738faa723e"), "name" : "lili", "age" : 26, "email" : "344521457@qq.com", "c" : 75, "m" : 63, "e" : 97, "country" : "USA", "books" : [ "JS", "JAVA", "C#", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa723f"), "name" : "zhangsan", "age" : 27, "email" : "2145567457@qq.com", "c" : 89, "m" : 86, "e" : 67, "country" : "China", "books" : [ "JS", "JAVA", "EXTJS", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7240"), "name" : "lisi", "age" : 26, "email" : "274521457@qq.com", "c" : 53, "m" : 96, "e" : 83, "country" : "China", "books" : [ "JS", "C#", "PHP", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7241"), "name" : "wangwu", "age" : 27, "email" : "65621457@qq.com", "c" : 45, "m" : 65, "e" : 99, "country" : "China", "books" : [ "JS", "JAVA", "C++", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7242"), "name" : "zhaoliu", "age" : 27, "email" : "214521457@qq.com", "c" : 99, "m" : 96, "e" : 97, "country" : "China", "books" : [ "JS", "JAVA", "EXTJS", "PHP" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7243"), "name" : "piaoyingjun", "age" : 26, "email" : "piaoyingjun@uspcat.com", "c" : 39, "m" : 54, "e" : 53, "country" : "Korea", "books" : [ "JS", "C#", "EXTJS", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7244"), "name" : "lizhenxian", "age" : 27, "email" : "lizhenxian@uspcat.com", "c" : 35, "m" : 56, "e" : 47, "country" : "Korea", "books" : [ "JS", "JAVA", "EXTJS", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7245"), "name" : "lixiaoli", "age" : 21, "email" : "lixiaoli@uspcat.com", "c" : 36, "m" : 86, "e" : 32, "country" : "Korea", "books" : [ "JS", "JAVA", "PHP", "MONGODB" ] }
{ "_id" : ObjectId("582bd556f343ce738faa7246"), "name" : "zhangsuying", "age" : 22, "email" : "zhangsuying@uspcat.com", "c" : 45, "m" : 63, "e" : 77, "country" : "Korea", "books" : [ "JS", "JAVA", "C#", "MONGODB" ] }

1.指定返回的键

a.查询出所有数据的指定键(name,age,country) 0:不显示 1:显示

> db.persons.find({},{name:1,age:1,country:1,_id:0})
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "zhangsan", "age" : 27, "country" : "USA" }

2.按条件查询

a. 查询出年龄在25到27岁之间的学生

> db.persons.find({age:{$gte:25,$lte:27}},{_id:0,age:1})
{ "age" : 25 }
{ "age" : 25 }
{ "age" : 26 }
{ "age" : 27 }
{ "age" : 26 }
{ "age" : 27 }
{ "age" : 27 }
{ "age" : 26 }
{ "age" : 27 }

b. 查询出所有不是韩国籍的学生的数学成绩

>db.persons.find({country:{$ne:"Korea"}},{_id:0,name:1,country:1,m:1})
{ "name" : "jim", "m" : 96, "country" : "USA" }
{ "name" : "tom", "m" : 66, "country" : "USA" }
{ "name" : "lili", "m" : 63, "country" : "USA" }
{ "name" : "zhangsan", "m" : 86, "country" : "China" }
{ "name" : "lisi", "m" : 96, "country" : "China" }
{ "name" : "wangwu", "m" : 65, "country" : "China" }
{ "name" : "zhaoliu", "m" : 96, "country" : "China" }

3.包含或不包含

$in$nin
a.查询国际是中国或者美国的学生信息

> db.persons.find({country:{$in:["USA","China"]}},{"_id":0,"name":1,"country":1})
{ "name" : "jim", "country" : "USA" }
{ "name" : "tom", "country" : "USA" }
{ "name" : "lili", "country" : "USA" }
{ "name" : "zhangsan", "country" : "China" }
{ "name" : "lisi", "country" : "China" }
{ "name" : "wangwu", "country" : "China" }
{ "name" : "zhaoliu", "country" : "China" }

b.查询国际不是中国或者美国的学生信息

> db.persons.find({country:{$nin:["USA","China"]}},{"_id":0,"name":1,"country":1})

查出来的学生国籍都是韩国的

{ "name" : "piaoyingjun", "country" : "Korea" }
{ "name" : "lizhenxian", "country" : "Korea" }
{ "name" : "lixiaoli", "country" : "Korea" }
{ "name" : "zhangsuying", "country" : "Korea" }

4 or 查询

$or
a.查询语文成绩大于85或者英语成绩大于90的学生信息

> db.persons.find({$or:[{c:{$gt:85}},{e:{$gt:90}}]},{_id:0,name:1,c:1,e:1})
{ "name" : "jim", "c" : 89, "e" : 87 }
{ "name" : "zhangsan", "c" : 89, "e" : 67 }
{ "name" : "zhaoliu", "c" : 99, "e" : 97 }

5. Null值查询

a.把中国国籍的学生增加新的键sex

> db.persons.update({country:"China"},{$set:{sex:"M"}})

执行完之后,所有国籍为China的学生都增加了一个sex键,我们可以查看一下:

> db.persons.find({},{_id:0,name:1,country:1,sex:1})
{ "name" : "jim", "country" : "USA" }
{ "name" : "tom", "country" : "USA" }
{ "name" : "lili", "country" : "USA" }
{ "name" : "zhangsan", "country" : "China", "sex" : "M" }
{ "name" : "lisi", "country" : "China", "sex" : "M" }
{ "name" : "wangwu", "country" : "China", "sex" : "M" }
{ "name" : "zhaoliu", "country" : "China", "sex" : "M" }
{ "name" : "piaoyingjun", "country" : "Korea" }
{ "name" : "lizhenxian", "country" : "Korea" }
{ "name" : "lixiaoli", "country" : "Korea" }
{ "name" : "zhangsuying", "country" : "Korea" }

b.查询sex等于null的学生(也就是没有sex键的学生)

> db.persons.find({sex:{$in:[null]}},{_id:0,name:1,country:1,sex:1})
{ "name" : "jim", "country" : "USA" }
{ "name" : "tom", "country" : "USA" }
{ "name" : "lili", "country" : "USA" }
{ "name" : "piaoyingjun", "country" : "Korea" }
{ "name" : "lizhenxian", "country" : "Korea" }
{ "name" : "lixiaoli", "country" : "Korea" }
{ "name" : "zhangsuying", "country" : "Korea" }

6.正则查询

a.查询出名字中存在”li”的学生信息

> db.persons.find({name:/li/i},{_id:0,name:1})
{ "name" : "lili" }
{ "name" : "lisi" }
{ "name" : "zhaoliu" }
{ "name" : "lizhenxian" }
{ "name" : "lixiaoli" }

7.$not的使用

$not可以用在任何地方进行取反操作
a. 查询出名字中不存在”li”的学生的信息

> db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
{ "name" : "jim" }
{ "name" : "tom" }
{ "name" : "zhangsan" }
{ "name" : "wangwu" }
{ "name" : "piaoyingjun" }
{ "name" : "zhangsuying" }

$not$nin的区别:$not可以用在任何地方,而$nin只能用在数组集合上

8.数组查询$all和index的应用

a.查询喜欢看MONGODB和JS的学生

> db.persons.find({books:{$all:["JS","MONGODB"]}},{_id:0,name:1,sex:1})
{ "name" : "jim" }
{ "name" : "lili" }
{ "name" : "zhangsan", "sex" : "M" }
{ "name" : "lisi", "sex" : "M" }
{ "name" : "wangwu", "sex" : "M" }
{ "name" : "piaoyingjun" }
{ "name" : "lizhenxian" }
{ "name" : "lixiaoli" }
{ "name" : "zhangsuying" }

b.查询第二本书是JAVA的学生信息

> db.persons.find({"books.1":"JAVA"},{_id:0,name:1,sex:1})
{ "name" : "tom" }
{ "name" : "lili" }
{ "name" : "zhangsan", "sex" : "M" }
{ "name" : "wangwu", "sex" : "M" }
{ "name" : "zhaoliu", "sex" : "M" }
{ "name" : "lizhenxian" }
{ "name" : "lixiaoli" }
{ "name" : "zhangsuying" }

9.查询指定长度数组

$size为指定的大小,他不能与比较查询符一起使用(这是一个弊端)
a.查询出喜欢的书籍数量是4本的学生

> db.persons.find({"books":{$size:4}},{_id:0,name:1,books:1})
{ "name" : "jim", "books" : [ "JS", "C++", "EXTJS", "MONGODB" ] }
{ "name" : "tom", "books" : [ "PHP", "JAVA", "EXTJS", "C++" ] }
{ "name" : "lili", "books" : [ "JS", "JAVA", "C#", "MONGODB" ] }
{ "name" : "zhangsan", "books" : [ "JS", "JAVA", "EXTJS", "MONGODB" ] }
{ "name" : "lisi", "books" : [ "JS", "C#", "PHP", "MONGODB" ] }
{ "name" : "wangwu", "books" : [ "JS", "JAVA", "C++", "MONGODB" ] }
{ "name" : "zhaoliu", "books" : [ "JS", "JAVA", "EXTJS", "PHP" ] }
{ "name" : "piaoyingjun", "books" : [ "JS", "C#", "EXTJS", "MONGODB" ] }
{ "name" : "lizhenxian", "books" : [ "JS", "JAVA", "EXTJS", "MONGODB" ] }
{ "name" : "lixiaoli", "books" : [ "JS", "JAVA", "PHP", "MONGODB" ] }
{ "name" : "zhangsuying", "books" : [ "JS", "JAVA", "C#", "MONGODB" ] }

10.查询出喜欢的书籍数量大于3本的学生(此方法可以弥补问题9中的不足)

a.增加字段size

db.persons.update({},{$set:{size:4}},false,true)

b.改变书籍的更新方式,每次增加书籍的时候size增加1

>db.persons.update({name:"jim"},{$push:{books:"ORACLE"},$inc:{size:1}})

c.利用$get查询书籍数量大于4的同学

> db.persons.find({size:{$gt:4}},{_id:0,name:1})
{ "name" : "jim" }

11.利用shell查询出jim喜欢看的书的数量

var jim = db.persons.find({“name”:”jim”})
while(jim.hasNext()){
obj = jim.next();
print(obj.books.length)
}
结果:5

小结:
1. MongoDB是NoSQL数据库但是他在文档查询上还是很强大的
2. 查询符基本是用到花括号里面的更新符基本是在外面
3. shell是个彻彻底底的JS引擎,但是一些特殊的操作要靠他的各个驱动包来完成(JAVA,node.js)

12.$slice操作符返回文档中指定数组的内部值

a. 查询出jim书架中第2~4本书

> db.persons.find({name:"jim"},{books:{$slice:[1,3]},_id:0,name:1})
{ "name" : "jim", "books" : [ "C++", "EXTJS", "MONGODB" ] }

b. 查询出最后一本书

> db.persons.find({name:"jim"},{books:{$slice:-1},_id:0,name:1})
{ "name" : "jim", "books" : [ "ORACLE" ] }

13.文档查询

准备数据:
为jim添加学习简历文档:

var jim = [{school :"K",score:"A"
},
{school :"L",score:"B"
},
{school :"J",score:"A+"
}]
db.persons.update({name:"jim"},{$set:{school:jim}})

a. 查询出在K学校上过学的学生

1.这个我们使用绝对匹配可以完成,但是缺点在于,必须准备好其他非必要条件,并且顺序错误是无法查询到的(不推荐)

> db.persons.find({school:{school:"K",score:"A"}},{_id:0,school:1})
{ "school" : [ { "school" : "K", "score" : "A" }, { "school" : "L", "score" : "B" }, { "school" : "J", "score" : "A+" } ] }

问题1:我不知道他的成绩怎么办?或者我就是为了查询这个分数的,缺少条件是无法查到结果的

> db.persons.find({school:{score:"A"}},{_id:0,school:1})

无结果
问题2:如果我调换了这两个属性的位置,那什么也查不出来

> db.persons.find({school:{score:"A",school:"K"}},{_id:0,school:1})

无结果

2.为了解决顺序的问题,可以使用对象”.”的方式定位(不推荐)

>db.persons.find({"school.score":"A","school.school":"K"},{_id:0,school:1})
{ "school" : [ { "school" : "K", "score" : "A" }, { "school" : "L", "score" : "B" }, { "school" : "J", "score" : "A+" } ] }

3.这样貌似能够解决顺序的问题,但是又出现了新的问题:
当我想查询出在J学校上过学并且得到成绩为A的学生,同样能查出这条数据,但是这是不符合逻辑的 (不推荐)

>db.persons.find({"school.score":"A","school.school":"J"},{_id:0,school:1})
{ "school" : [ { "school" : "K", "score" : "A" }, { "school" : "L", "score" : "B" }, { "school" : "J", "score" : "A+" } ] }

4.正确做法:使用单条条件组查询 $elemMatch (推荐)

> db.persons.find({school:{$elemMatch:{school:"K",score:"A"}}},{_id:0,school:1})可以成功查询出正确结果
{ "school" : [ { "school" : "K", "score" : "A" }, { "school" : "L", "score" : "B" }, { "school" : "J", "score" : "A+" } ] }

当我们再次尝试使用”J”+”A”组合查询时,发现查不到任何匹配文档,说明这是完美的做法

14.$where
a.查询年龄大于22岁,喜欢看c++书,在k学校上过学的学生信息
对于这样的复杂查询,使用$where查询,因为很万能
不过我们应该避免使用它,因为效率不是很高

db.persons.find({"$where":function(){//查询var books = this.books;var school = this.school;if(this.age > 22){var php = null;for(var i=0; iif(books[i] == "c++"){php = books[i];if(school){for(var j=0; j< school.length; j++){if(school[j].school == "K"){return true;}}break;}}}}
}
})

查询结果:

{ "name" : "jim", "age" : 25, "books" : [ "JS", "C++", "EXTJS", "MONGODB", "ORACLE" ] }

5. find操作详解相关推荐

  1. python输入参数改变图形_Python基于Tensor FLow的图像处理操作详解

    本文实例讲述了Python基于Tensor FLow的图像处理操作.分享给大家供大家参考,具体如下: 在对图像进行深度学习时,有时可能图片的数量不足,或者希望网络进行更多的学习,这时可以对现有的图片数 ...

  2. 第 5 章 Nova - 041 - Resize Instance 操作详解

    Resize Instance 操作详解 Resize 的作用是调整 instance 的 vCPU.内存和磁盘资源. Instance 需要多少资源是定义在 flavor 中的,resize 操作是 ...

  3. SVN的Windows和Linux客户端操作详解

    SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...

  4. python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  5. countif和sum套用_if函数嵌套countif、sumif函数实例操作详解 你需要学习了

    excel中if函数嵌套countif函数实例操作详解,需要了解if函数.countif函数.sumif函数字符串引用方式,isblank函数 操作方法 01 用扫描枪连接excel后将自动将货物名称 ...

  6. Java实现话术词槽匹配_桔子互动|百度UNIT操作详解(上篇)

    原标题:桔子互动|百度UNIT操作详解(上篇) 作者:令狐曦 文章简介: 本篇文章对UNIT的操作和注意事项进行详细说明,内容包括: 建立场景 配置对话单元/问答单元/高级设置 [配置对话单元] [配 ...

  7. python3d动态图-Python图像处理之gif动态图的解析与合成操作详解

    本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...

  8. Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)

    Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34) 本节通过日志详细分析 Nova Pause/Resume 操作. 有时需要短时间暂停 instan ...

  9. python中返回上一步操作的代码_Pycharm代码跳转后退回操作详解

    用Pycharm写Python代码有一段时间了,最近发现了一个Pycharm的一个小技巧想分享给大家,下面这篇文章主要给大家介绍了关于Pycharm代码跳转该如何回退的相关资料,文中介绍的非常详细,对 ...

  10. java switch 值_Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...

最新文章

  1. Coreseek-带中文分词的Sphinx
  2. windows系统下_ffmpeg编译_2011年
  3. 控制台出现Failed to bind properties under ‘spring.datasource‘ to javax.sql.DataSource
  4. MongoDB 安装记录
  5. (8)FPGA时钟设计(第2天)
  6. 专注于元宇宙后 Meta今年将取消举办F8开发者大会
  7. jQuery获取url地址
  8. Exchange 2010安装各角色先决条件的Powershell
  9. 《Python预测之美》送书活动,中奖名单公示
  10. java方法前面加上x_@Autowired 写在构造方法上
  11. svg 转换为 pdf (batik 库+fop库)
  12. 小程序php上传图片到服务器,关于微信小程序上传图片到服务器的代码
  13. Layui treeTable相关
  14. 内存时序对应的4个参数你们知道吗?ICMAX一文让你看懂
  15. 三点定位法原理及实现——蓝牙定位
  16. mysql如何高效存储IPv4、IPv6地址
  17. 编码通信与魔术初步(一)——通信浅谈
  18. UCenter 1.6 数据字典
  19. 长城云计算机如何重装系统,重装系统怎么装,这个方法一学就会
  20. Redis 热点问题产生,解决方案有哪些?

热门文章

  1. 手把手教你如何用VBA统计问卷调查表
  2. aws ssh 证书配置_在AWS Lambda中运行netflix bless ssh证书颁发机构
  3. 趣谈充电IC的电源路径管理功能
  4. 孩子必听的数学家故事——笛卡尔
  5. VMware Workstation -- 破解密码
  6. SWUST OJ【972】
  7. App数据抓取(Appium使用)
  8. WPF 加载PDF文件
  9. 2021-08-04——实践项目1(书本案例)
  10. 台风怎么看内存颗粒_【内存篇】能否Deja Vu?海力士DJR超频测试