查询条件:db.docName.find({条件},{键指定})
< : $lt(less then)  
> : $gt(grent then) 
<=: $lte(less then equals)
>=: $gte(grent the equals)
!=: $ne(not equals)

例:{age:{$gte:22,$lte:27}}

0.准备测试数据
var persons = [{
name:"jim",
age:25,
email:"75431457@qq.com",
c:89,m:96,e:87,
country:"USA",
books:["JS","C++","EXTJS","MONGODB"]
},
{
name:"tom",
age:25,
email:"214557457@qq.com",
c:75,m:66,e:97,
country:"USA",
books:["PHP","JAVA","EXTJS","C++"]
},
{
name:"lili",
age:26,
email:"344521457@qq.com",
c:75,m:63,e:97,
country:"USA",
books:["JS","JAVA","C#","MONGODB"]
},
{
name:"zhangsan",
age:27,
email:"2145567457@qq.com",
c:89,m:86,e:67,
country:"China",
books:["JS","JAVA","EXTJS","MONGODB"]
},
{
name:"lisi",
age:26,
email:"274521457@qq.com",
c:53,m:96,e:83,
country:"China",
books:["JS","C#","PHP","MONGODB"]
},
{
name:"wangwu",
age:27,
email:"65621457@qq.com",
c:45,m:65,e:99,
country:"China",
books:["JS","JAVA","C++","MONGODB"]
},
{
name:"zhaoliu",
age:27,
email:"214521457@qq.com",
c:99,m:96,e:97,
country:"China",
books:["JS","JAVA","EXTJS","PHP"]
},
{
name:"piaoyingjun",
age:26,
email:"piaoyingjun@uspcat.com",
c:39,m:54,e:53,
country:"Korea",
books:["JS","C#","EXTJS","MONGODB"]
},
{
name:"lizhenxian",
age:27,
email:"lizhenxian@uspcat.com",
c:35,m:56,e:47,
country:"Korea",
books:["JS","JAVA","EXTJS","MONGODB"]
},
{
name:"lixiaoli",
age:21,
email:"lixiaoli@uspcat.com",
c:36,m:86,e:32,
country:"Korea",
books:["JS","JAVA","PHP","MONGODB"]
},
{
name:"zhangsuying",
age:22,
email:"zhangsuying@uspcat.com",
c:45,m:63,e:77,
country:"Korea",
books:["JS","JAVA","C#","MONGODB"]
}]
for(var i = 0;i<persons.length;i++){
db.persons.insert(persons[i])
}
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
obj = persons.next();
        print(obj.books.length)
}

查询示例:
1.指定返回的键
1)查询出所有数据的指定的字段(name,age,email)
> db.persons.find({},{_id:0,name:1,age:1,email:1})
{ "name" : "jim", "age" : 25, "email" : "75431457@qq.com" }
{ "name" : "tom", "age" : 25, "email" : "214557457@qq.com" }
{ "name" : "lili", "age" : 26, "email" : "344521457@qq.com" }
{ "name" : "zhangsan", "age" : 27, "email" : "2145567457@qq.com" }
{ "name" : "lisi", "age" : 26, "email" : "274521457@qq.com" }
{ "name" : "wangwu", "age" : 27, "email" : "65621457@qq.com" }
{ "name" : "zhaoliu", "age" : 27, "email" : "214521457@qq.com" }
{ "name" : "piaoyingjun", "age" : 26, "email" : "piaoyingjun@uspcat.com" }
{ "name" : "lizhenxian", "age" : 27, "email" : "lizhenxian@uspcat.com" }
{ "name" : "lixiaoli", "age" : 21, "email" : "lixiaoli@uspcat.com" }
{ "name" : "zhangsuying", "age" : 22, "email" : "zhangsuying@uspcat.com" }

2.查询条件
1)查询年龄在25到27岁之间的学生(AND)
> db.persons.find({age:{$gte:25,$lte:27}},{_id:0,name:1,age:1})
{ "name" : "jim", "age" : 25 }
{ "name" : "tom", "age" : 25 }
{ "name" : "lili", "age" : 26 }
{ "name" : "zhangsan", "age" : 27 }
{ "name" : "lisi", "age" : 26 }
{ "name" : "wangwu", "age" : 27 }
{ "name" : "zhaoliu", "age" : 27 }
{ "name" : "piaoyingjun", "age" : 26 }
{ "name" : "lizhenxian", "age" : 27 }

2)查询出所有不是韩国国籍的学生数学成绩
> db.persons.find({country:{$ne:"Korea"}},{_id:0,name:1,country:1,age:1})
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "zhangsan", "age" : 27, "country" : "China" }
{ "name" : "lisi", "age" : 26, "country" : "China" }
{ "name" : "wangwu", "age" : 27, "country" : "China" }
{ "name" : "zhaoliu", "age" : 27, "country" : "China" }

3.包含或不包含$in或$nin(只能用于数组)
1)查询国籍是中国或美国的学生信息
> db.persons.find({country:{$in:["USA","China"]}},{_id:0,name:1,country:1,age:1})
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "zhangsan", "age" : 27, "country" : "China" }
{ "name" : "lisi", "age" : 26, "country" : "China" }
{ "name" : "wangwu", "age" : 27, "country" : "China" }
{ "name" : "zhaoliu", "age" : 27, "country" : "China" }

2)查询国籍不是中国美国的学生信息
> db.persons.find({country:{$nin:["USA","China"]}},{_id:0,name:1,country:1,age:1})
{ "name" : "piaoyingjun", "age" : 26, "country" : "Korea" }
{ "name" : "lizhenxian", "age" : 27, "country" : "Korea" }
{ "name" : "lixiaoli", "age" : 21, "country" : "Korea" }
{ "name" : "zhangsuying", "age" : 22, "country" : "Korea" }

4.或查询$or
1)查询国籍是中国或美国的学生信息
> db.persons.find({$or:[{country:"USA"},{country:"China"}]},{_id:0,name:1,country:1,age:1})
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "zhangsan", "age" : 27, "country" : "China" }
{ "name" : "lisi", "age" : 26, "country" : "China" }
{ "name" : "wangwu", "age" : 27, "country" : "China" }
{ "name" : "zhaoliu", "age" : 27, "country" : "China" }

5.NULL值的记录查询
1)把中国国籍的学生上增加新的键sex
> db.persons.update({country:"China"},{$set:{sex:"M"}},false,true)
> db.persons.find({},{_id:0,name:1,age:1,country:1,sex:1});
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "piaoyingjun", "age" :26, "country" : "Korea" }
{ "name" : "lizhenxian", "age" : 27, "country" : "Korea" }
{ "name" : "lixiaoli", "age" : 21, "country" : "Korea" }
{ "name" : "zhangsuying", "age" :22, "country" : "Korea" }
{ "age" : 27, "country" : "China", "name" : "zhangsan", "sex" : "M" }
{ "age" : 26, "country" : "China", "name" : "lisi", "sex" : "M" }
{ "age" : 27, "country" : "China", "name" : "wangwu", "sex" : "M" }
{ "age" : 27, "country" : "China", "name" : "zhaoliu", "sex" : "M" }

2)查询出sex等于null的学生(只有中国学生有性别)
> db.persons.find({sex:{$in:[null]}},{_id:0,name:1,age:1,country:1,sex:1});
{ "name" : "jim", "age" : 25, "country" : "USA" }
{ "name" : "tom", "age" : 25, "country" : "USA" }
{ "name" : "lili", "age" : 26, "country" : "USA" }
{ "name" : "piaoyingjun", "age" : 26, "country" : "Korea" }
{ "name" : "lizhenxian", "age" : 27, "country" : "Korea" }
{ "name" : "lixiaoli", "age" : 21, "country" : "Korea" }
{ "name" : "zhangsuying", "age" : 22, "country" : "Korea" }

6.正则查询
1)查询出名字中存在"li"的学生信息
> db.persons.find({name:/li/i},{_id:0,name:1})
{ "name" : "lili" }
{ "name" : "lizhenxian" }
{ "name" : "lixiaoli" }
{ "name" : "lisi" }
{ "name" : "zhaoliu" }

7.$not的使用 $not可以用到任何地方进行取反操作
1)$not与$nin的区别是$not可以用在任何地方$nin是用到数组集合上的
查询出名字中不存在"li"的学生的信息
> db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
{ "name" : "jim" }
{ "name" : "tom" }
{ "name" : "zhangsan" }
{ "name" : "piaoyingjun" }
{ "name" : "zhangsuying" }
{ "name" : "wangwu" }

8.数组查询$all和index应用
1)查询喜欢看Mongodb和JS的学生
> db.persons.find({books:{$all:["JS","MONGODB"]}},{_id:0,name:1,books:1})
{ "name" : "jim", "books" : [  "JS",  "C++",  "EXTJS",  "MONGODB" ] }
{ "name" : "lili", "books" : [  "JS",  "JAVA",  "C#",  "MONGODB" ] }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "MONGODB" ], "name" : "zhangsan" }
{ "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" ] }
{ "books" : [  "JS",  "C#",  "PHP",  "MONGODB" ], "name" : "lisi" }
{ "books" : [  "JS",  "JAVA",  "C++",  "MONGODB" ], "name" : "wangwu" }

2)查询第二本书是JAVA的学生信息
> db.persons.find({"books.1":"JAVA"},{_id:0,name:1,books:1})
{ "name" : "tom", "books" : [  "PHP",  "JAVA",  "EXTJS",  "C++" ] }
{ "name" : "lili", "books" : [  "JS",  "JAVA",  "C#",  "MONGODB" ] }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "MONGODB" ], "name" : "zhangsan" }
{ "name" : "lizhenxian", "books" : [  "JS",  "JAVA",  "EXTJS",  "MONGODB" ] }
{ "name" : "lixiaoli", "books" : [  "JS",  "JAVA",  "PHP",  "MONGODB" ] }
{ "name" : "zhangsuying", "books" : [  "JS",  "JAVA",  "C#",  "MONGODB" ] }
{ "books" : [  "JS",  "JAVA",  "C++",  "MONGODB" ], "name" : "wangwu" }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "PHP" ], "name" : "zhaoliu" }

9.查询指定长度数组$size它不能与比较查询符一起使用(这是弊端)
1)查询出喜欢的书籍数量是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" ] }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "MONGODB" ], "name" : "zhangsan" }
{ "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" ] }
{ "books" : [  "JS",  "C#",  "PHP",  "MONGODB" ], "name" : "lisi" }
{ "books" : [  "JS",  "JAVA",  "C++",  "MONGODB" ], "name" : "wangwu" }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "PHP" ], "name" : "zhaoliu" }

2)查询出喜欢的书籍数量大于5本的学生
> db.persons.update({},{$set:{size:4}},false,true) #增加字段size
> db.persons.update({name:"jim"},{$push:{books:"ORACLE"},$inc:{size:1}}) #改变书籍的更新方式,每次增加书籍的时候size增加1
> db.persons.find({},{_id:0,name:1,books:1,size:1})
{ "books" : [  "PHP",  "JAVA",  "EXTJS",  "C++" ], "name" : "tom", "size" : 4 }
{ "books" : [  "JS",  "JAVA",  "C#",  "MONGODB" ], "name" : "lili", "size" : 4 }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "MONGODB" ], "name" : "zhangsan", "size" : 4 }
{ "books" : [  "JS",  "C#",  "EXTJS",  "MONGODB" ], "name" : "piaoyingjun", "size" : 4 }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "MONGODB" ], "name" : "lizhenxian", "size" : 4 }
{ "books" : [  "JS",  "JAVA",  "PHP",  "MONGODB" ], "name" : "lixiaoli", "size": 4 }
{ "books" : [  "JS",  "JAVA",  "C#",  "MONGODB" ], "name" : "zhangsuying", "size" : 4 }
{ "books" : [  "JS",  "C#",  "PHP",  "MONGODB" ], "name" : "lisi", "size" : 4 }
{ "books" : [  "JS",  "JAVA",  "C++",  "MONGODB" ], "name" : "wangwu", "size" :4 }
{ "books" : [  "JS",  "JAVA",  "EXTJS",  "PHP" ], "name" : "zhaoliu", "size" : 4 }
{ "books" : [  "JS",  "C++",  "EXTJS",  "MONGODB",  "ORACLE" ], "name" : "jim","size" : 5 }
 
3)查询书籍大于4本的学生
> db.persons.find({size:{$gt:4}},{_id:0,name:1})
{ "name" : "jim" }

4)利用shell查询出Jim喜欢看的书的数量(用游标实现的)
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
   obj = persons.next();
   print(obj.books.length);
}

10.返回文档中指定数组的内部值$slice
1)查询出jim书架中第2-4本书
> db.persons.find({name:"jim"},{_id:0,books:{"$slice":[1,3]}})
{ "_id" : ObjectId("52e643af06277e7d6c6ab516"), "age" : 25, "books" : [  "C++", "EXTJS",  "MONGODB" ], 
"c" : 89, "country" : "USA", "e" : 87, "email" : "75431457@qq.com", "m" : 96, "name" : "jim", "size" : 5 }

2)查询出最后一本书
> db.persons.find({name:"jim"},{books:{"$slice":-1},_id:0})
{ "age" : 25, "books" : [  "ORACLE" ], "c" : 89, "country" : "USA", "e" : 87,
 "email" : "75431457@qq.com", "m" : 96, "name" : "jim", "size" : 5 }

11.文档查询
首先为jim添加学习简历文档jim.json
---------------
var jim = [{
school :"K",
score:"A"
},{
school :"L",
score:"B"
},{
school :"J",
score:"A+"
}]
db.persons.update({name:"jim"},{$set:{school:jim}})

1)查询出在k上过学的学生

1.这个我们用绝对匹配可以完成,但是有些问题(总要带着score)
> 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+"}]}

2.为了解决顺序问题我们可以用对象“.”的方式定位(注意:用[对象.属性]的方式加双引号)
> db.persons.find({"school.school":"K"},{_id:0,school:1})
{ "school" : [{"school" : "K","score" : "A" },{"school" : "L","score" : "B" },{"school" : "J","score":"A+"}]}
3.错误的查询结果:
查询成绩为A,学校为J,其实记录不存在,但可以查出结果
> 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+" } ] }
以上同样可以查出刚才那条数据,原因是score和school会去其它对象中查找
正确的查询看第4条
  
4.组合条件查询$elemMatch(正确的做法单个条件组查询)
> db.persons.find({school:{$elemMatch:{school:"K",score:"A"}}},{_id:0,email:0,cuntry:0,e:0,m:0,score:0,size:0,age:0})
{ "books" : [  "JS",  "C++",  "EXTJS",  "MONGODB",  "ORACLE" ],
  "c" : 89, 
  "name : "jim", 
  "school" : [  { "school" : "K", "score" : "A" },{"school" : "L","score" : "B" },
                { "school" : "J", "score" : "A+" } 
             ] 
}

5.复杂查询用$where(比较耗费资源)
1)查询年龄大于22岁,喜欢看C++书,在K学校上过学的学生信息 
db.persons.find({"$where":function(){
    var books = this.books;//得到查询结果的每一条文档
    var school = this.school;//得到文档中的school对象
    if(this.age > 22){ //如果年纪>=22
        var php = null;
        //遍历书籍
        for ( var i = 0; i < books.length; i++) {
            if(books[i] == "C++"){
                php = books[i];
                if(school){
                    for (var j = 0; j < school.length; j++) {
       //判断是不是在K上学
       if(school[j].school == "K"){
           return true;
       }
   }
break;
            }
        }
    }
  }
}})

7.查询指定数据条数limit,查询前5条记录
> db.persons.find({},{_id:0,name:1}).limit(5)
{ "name" : "tom" }
{ "name" : "lili" }
{ "name" : "zhangsan" }
{ "name" : "piaoyingjun" }
{ "name" : "lizhenxian" }

8.查询指定数据的跨度skip,从第4条开始取5条记录
> db.persons.find({},{_id:0,name:1}).limit(5).skip(4)
{ "name" : "lizhenxian" }
{ "name" : "lixiaoli" }
{ "name" : "zhangsuying" }
{ "name" : "lisi" }
{ "name" : "wangwu" }

9.查询按照年龄排序的数据[1,-1] sort
按age正序排序
> db.persons.find({},{_id:0,name:1,age:1}).sort({age:1})
{ "age" : 21, "name" : "lixiaoli" }
{ "age" : 22, "name" : "zhangsuying" }
{ "age" : 25, "name" : "tom" }
{ "age" : 25, "name" : "jim" }
{ "age" : 26, "name" : "lili" }
{ "age" : 26, "name" : "piaoyingjun" }
{ "age" : 26, "name" : "lisi" }
{ "age" : 27, "name" : "zhangsan" }
{ "age" : 27, "name" : "lizhenxian" }
{ "age" : 27, "name" : "wangwu" }
{ "age" : 27, "name" : "zhaoliu" }

按age倒序排序
> db.persons.find({},{_id:0,name:1,age:1}).sort({age:-1})
{ "age" : 27, "name" : "zhangsan" }
{ "age" : 27, "name" : "lizhenxian" }
{ "age" : 27, "name" : "wangwu" }
{ "age" : 27, "name" : "zhaoliu" }
{ "age" : 26, "name" : "lili" }
{ "age" : 26, "name" : "piaoyingjun" }
{ "age" : 26, "name" : "lisi" }
{ "age" : 25, "name" : "tom" }
{ "age" : 25, "name" : "jim" }
{ "age" : 22, "name" : "zhangsuying" }
{ "age" : 21, "name" : "lixiaoli" }

10.用limit和skip完成分页
1)3条记录一页进行分页
第一页:db.persons.find({},{_id:0,name:1}).limit(3).skip(0)
第二页:db.persons.find({},{_id:0,name:1}).limit(3).skip(3)

2)skip有性能问题,没有特殊情况下我们也可以换个思路

表结构如下:
_id name age date
001 jim 25 2014-2-1 11:57:31
002 tom 35 2014-2-2 11:57:31
003 lili 21 2014-2-3 11:57:31
004 zhang 23 2014-2-4 11:57:31
005 wang 26 2014-2-5 11:57:31

每次查询操作时,将时间作为条件
db.persons.find({date:{$gt:日期数值}}).limit(3)
 
11.游标操作
1)遍历查询数据
var persons = db.persons.find();
while(persons.hasNext()){
obj = persons.next();
print(obj.name);
}

2)游标几个销毁条件
1.客户端发来信息要它销毁
2.游标迭代完毕
3.默认游标超过10分钟没用也会销毁

3)查询快照
快照后就会针对不变的集合进行游标运动了,看看使用方法
db.persons.find({$query:{name:"jim"},$snapshot:true})

高级查询选项
$query
$orderby
$maxsan: integer最多扫描的文档数
$min: doc 查询开始
$max: doc 查询结束
$hint: doc使用哪个索引
$explain: boolean 统计
$snapshot: boolean 一致快照

================================================

原文:http://blog.csdn.net/cyjch/article/details/51767861
作者:超越
超越的主页:http://blog.csdn.net/cyjch

================================================

超越之MongDB系列教程(六) MongDB的查询相关推荐

  1. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  2. 以太坊构建DApps系列教程(六):使用定制代币进行投票

    在本系列关于使用以太坊构建DApps教程的第5部分中,我们讨论了如何为Story添加内容,查看如何添加参与者从DAO购买代币的功能以及在Story中添加提交内容.现在是编写DAO最终形式的时候了:投票 ...

  3. 米思齐(Mixly)图形化系列教程(六)-for循环

    目录 For执行过程 省略 省略'循环变量赋值' 省略'循环条件' 省略"循环变量增量" FOR循环使用举例 遍历数组 顺序输出数据 指定程序重复执行次数 死循环 求和 教程导航 ...

  4. PVE系列教程(六)、安装Windows11系统(专业版、企业版、家庭版通用)

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 PVE系列教程(六).安装Windows11系统(专业版.企业版.家庭版通用) 一.创建win11的虚拟机,并设置参数 在PVE右上角点击创建虚拟 ...

  5. ClickHouse系列教程六:源码分析之Debug编译运行

    ClickHouse系列教程: ClickHouse系列教程 根据官方文档的编译教程:How to Build ClickHouse on Linux - ClickHouse Documentati ...

  6. ASP.NET Core Web Razor Pages系列教程六:添加搜索功能

    系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...

  7. Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解

    需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...

  8. NGUI_2.6.3_系列教程六(序列帧动画)

    今天我给大家讲一下如何使用NGUI做序列帧动画.本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画.废话不说了,下面开始. 还要在啰嗦一句,首先大家要准备一些序列 ...

  9. twisted系列教程六–继续重构twisted poetry client

    Poetry for Everyone 我们已经在我们的client取得了很大的进步,我们的2.0版本已经试用了Transports,Protocols 和Protocols Factories.但是 ...

  10. NGUI系列教程六(技能冷却的CD效果)

    今天来学习一下,如何利用NGUI做技能冷却的CD效果. 1,首先按之前的教程Create Your UI,Camera为Simple 2D 最终如下图: 2,添加一个按钮,Background 为一张 ...

最新文章

  1. 工业相机帧率与曝光时间的关系
  2. C++11新特性中的匿名函数Lambda表达式的汇编实现分析(二)
  3. 15款帮助你实现响应式导航的 jQuery 插件
  4. 高通将用芯片改变无人机行业格局
  5. 前端入门技巧之浏览器调试
  6. 产品经理如何做好信息架构
  7. 明尼苏达推荐系统导论(第一课 欢迎来到RS)
  8. (转)Android中JNI编程的那些事儿
  9. 【clickhouse】clickhouse kafka 引擎常见问题
  10. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(8)...
  11. AWR-比较两个阶段性能
  12. 杨力祥老师《高级Windows程序设计》课程短评
  13. 数字图像基本操作——图像采样、量化、算术运算、点运算实验结果及分析
  14. PS将红底证件照改为白底
  15. jsp技术(一)—— jsp简介与原理
  16. SpringMVC、Struts1和Struts2区别
  17. 通过监听手势滑动解决DrawerLayout只能边缘打开抽屉问题
  18. 工作手册 会计核算制度 目录 1. 会计核算管理制度 1 2. 会计档案管理办法 4 1.会计核算管理制度 8. 1.采取借贷记账法记账,采用权责发生制,即凡是收益已经实现,用已经发生,不论款
  19. 别人的【计算机视觉算法岗面经】“吐血”整理:2019秋招面经
  20. python 输入学生成绩大于 90为优_c++ 输入学生成绩,打印出该学生成绩等级,大于等于90为A,小于90且大于等于80为B,小...

热门文章

  1. python图片转excel,用Python玩转图片处理,并导出文件列表到Excel文件
  2. 傅里叶变换的性质及证明(CTFT)
  3. oracle的报表工具有哪些,报表开发常用的六款小工具
  4. 计算机调节音量找不到,电脑右下角的小喇叭不见了?教你这样操作,轻松调节音量!...
  5. Mybatis 新增返回ID
  6. 用计算机如何判断闰年,php判断/计算闰年的方法小结【三种方法】
  7. SLAM 之四元数转欧拉角再理解
  8. 蒙大拿大学计算机,2020年药学专业世界大学排名【USNEWS】
  9. 追梦App系列博客——需求分析报告
  10. 风行视频app v3.4.3.1