一、引言

上一篇文章我们已经介绍了MongoDB数据库的查询操作,但是并没有介绍全,随着自己的学习的深入,对查询又有了新的东西,决定补充进来。如果大家想看上一篇有关MongoDB查询的文章,可以点击这里《MongoDb进阶实践之四 MongoDB查询命令详述》,第一篇文章详细介绍了有关MongoDB查询的有关命令和操作符。废话不多说,今天主要的任务就是把有关MongoDB查询命令的新的东西补充进来,文章的序号,我是接着上一篇文章来的,没有重头来说,这样大家也就知道今天是有关MongoDB查询之四的补充了。好了,马上开始我们今天的写作吧。

二、MongDB查询的详解(补充)

我比较直接,直接上内容,有关查询的每个方法都有示例代码,应该不是很难。大家注意,序号不是从1开始的,因为是补充的,大家可以结合上一篇文章一起来看。

12、$in 操作符:在一个数组中查询匹配的文档,查询条件的值可以有多个,条件可以满足一个或者多个

语法:db.collectionName.find({<key>:{$in:[value1,value2...valuen]}})

  参数说明:

                       key:要操作的字段名称

                       $in:操作符,在一个数组中选择符合条件的文档

                       value1-n:查询条件要满足的值,可以有多个值,可以满足一个,两个,或者多个

                    $in操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "userName" : "HanMeiMei", "sex" : "", "age" : "", "address" : "JiangXi" }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7.  
  8. //查询结果
  9. > db.students.find({"age":{"$in":["",""]}})
  10. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  11. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "userName" : "HanMeiMei", "sex" : "", "age" : "", "address" : "JiangXi" }
  12. >

13、$nin 操作符:和$in操作符相反,选择不符合数组条件的所有文档

      语法:db.collectionName.find({<key>:{$nin:[value1,value2...valuen]}})

                    参数说明:

                       key:要操作的字段名称

                       $nin:操作符,在一个数组中选择不符合条件的文档

                       value1-n:查询条件要满足的值,可以有多个值,可以满足一个,两个,或者多个

                    $nin操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "userName" : "HanMeiMei", "sex" : "", "age" : "", "address" : "JiangXi" }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7.  
  8. //查询结果
  9. > db.students.find({"age":{"$nin":[""]}})
  10. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  11. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "userName" : "HanMeiMei", "sex" : "", "age" : "", "address" : "JiangXi" }
  12. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }

14、$and 操作符:该操作符用于连接多个条件,只有当每个条件必须都是为true,整个条件的集合才会返回true,表示条件成立,然后就会返回符合条件的文档

语法:db.collectionName.find({$and:[{query1},{query2}...{queryn}]})

参数说明:

                       $and:操作符,每个条件都必须返回true,整个条件集合才回返回true;如果有一个条件返回false,整个条件结果就是false。

                       query1-n:具体的查询条件,可以有多个查询条件,只有所有条件返回true,整个条件集合才回返回ture,表示成功。

                    $and操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "userName" : "HanMeiMei", "sex" : "", "age" : "", "address" : "JiangXi" }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7.  
  8. //查询结果
  9. db.students.find({"$and":[{"age":""},{"sex":""}]})
  10. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  11. >

15、$not 操作符:该操作符用于对当前的条件取反,要和其他操作符配合使用。比如,我可以取性别不是男的所有的文档,也可以获取年龄不包含44和55岁的人的文档

                   语法:db.collectionName.find({<key>:{"$not":{"$in":[value1,value2...valuen]}}})

参数说明:

                       key:在字段是要进行条件筛选的字段名。

                       $not:操作符,对条件进行取反,通常会和其他操作符配合使用。

                       value1-n:具体需要过滤的值,可以是多个值,$in操作符表示符合这些条件,$not操作符就是对$in操作符的条件取反

                   $not操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "userName" : "lilei", "sex" : "", "age" : "", "address" : "guangxi" }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "userName" : "HanMeiMei", "sex" : "", "age" : "", "address" : "JiangXi" }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7.  
  8. //查询结果,查询年龄不是21和18岁的其他人
  9. > db.students.find({"age":{"$not":{"$in":["",""]}}})
  10. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  11. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  12. >

16、$all 操作符:是针对数组字段操作的,可以完成类似模糊查询的效果,并且和字段值的顺序无关。一般Mongodb数组字段的查询,都是精确查询,并且和字段的顺序有关。

                  语法:db.collectionName.find({<key>:{$all:[value1,value2...valuen]}})

参数说明:

                       key:要操作的字段名称,并且该字段是数组字段

                       $all:操作符,在一个数组中选择符合条件的文档

                       value1-n:查询条件要满足的值,可以有多个值,可以满足一个,两个,或者多个

                    $all操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "frut" : [ "apple", "banana" ] }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "frut" : [ "apple", "banana" ] }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7. { "_id" : ObjectId("5adb4b5df82775fbd989b852"), "frut" : [ "apple", "banana" ] }
  8. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "apple", "banana", "orange" ] }
  9. >
  10.  
  11. //查询结果 无值
  12. > db.students.find({"frut":["apple","orange"]})
  13. >
  14.  
  15. //查询结果 增加了$all操作符的,orange是第三个元素
  16. > db.students.find({"frut":{"$all":["apple","orange"]}})
  17. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "apple", "banana", "orange" ] }

17、$size 操作符:该操作符是根据数组字段元素的个数作为查询条件的,可以理解为查询数组字段中具有number个元素的文档

                   语法:db.collectionName.find({<key>:{$size:number}})

参数说明:

                       key:要操作的字段名称,该字段必须是数组字段

                       $size:操作符,根据数组元素个数来作为查询条件

                       number:表示几个元素,不是第几个,可以理解为我们查询数组字段中有number个值的文档

                    $size操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "frut" : [ "apple", "banana" ] }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "frut" : [ "apple", "banana" ] }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7. { "_id" : ObjectId("5adb4b5df82775fbd989b852"), "frut" : [ "apple", "banana" ] }
  8. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "apple", "banana", "orange" ] }
  9. >
  10.  
  11. //查询结果,查询只有一个元素的文档,没有
  12. > db.students.find({"frut":{"$size":}})
  13.  
  14. //查询结果,查询只有2个元素的文档
  15. > db.students.find({"frut":{"$size":}})
  16. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "frut" : [ "apple", "banana" ] }
  17. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "frut" : [ "apple", "banana" ] }
  18. { "_id" : ObjectId("5adb4b5df82775fbd989b852"), "frut" : [ "apple", "banana" ] }
  19.  
  20. //查询结果,查询只有3个元素的文档
  21. > db.students.find({"frut":{"$size":}})
  22. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "apple", "banana", "orange" ] }
  23. >

18、$slice 操作符:该操作符可以从数组字段的头部或者尾部获取指定个数的元素的文档

                   语法:db.collectionName.find({query},{<key>:{$slice:number}})

参数说明:

                       key:要操作的字段名称,该字段必须是数组字段

                       $slice:操作符,可以从数组的头部或者尾部取指定数量的元素

                       number:这个数字表示要获取的数组字段元素的个数,正负表示从头部还是从尾部来获取

                    $slice操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "frut" : [ "apple", "banana" ] }
  4. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "frut" : [ "apple", "banana" ] }
  5. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  6. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  7. { "_id" : ObjectId("5adb4b5df82775fbd989b852"), "frut" : [ "apple", "banana" ] }
  8. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "apple", "banana", "orange" ] }
  9.  
  10. //查询结果,从头部获取一个元素的文档
  11. > db.students.find({},{"frut":{"$slice":}})
  12. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "frut" : [ "apple" ] }
  13. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "frut" : [ "apple" ] }
  14. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  15. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  16. { "_id" : ObjectId("5adb4b5df82775fbd989b852"), "frut" : [ "apple" ] }
  17. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "apple" ] }
  18.  
  19. //查询结果,从尾部获取一个元素的文档
  20. > db.students.find({},{"frut":{"$slice":-}})
  21. { "_id" : ObjectId("5adb3dbda62a80dd1239bb40"), "frut" : [ "banana" ] }
  22. { "_id" : ObjectId("5adb3dbda62a80dd1239bb41"), "frut" : [ "banana" ] }
  23. { "_id" : ObjectId("5adb3dbda62a80dd1239bb42"), "userName" : "ZhangFei", "sex" : "", "age" : "", "address" : "HeBei" }
  24. { "_id" : ObjectId("5adb3dbda62a80dd1239bb43"), "userName" : "GuanYu", "sex" : "", "age" : "", "address" : "ShanXi" }
  25. { "_id" : ObjectId("5adb4b5df82775fbd989b852"), "frut" : [ "banana" ] }
  26. { "_id" : ObjectId("5adb4b83f82775fbd989b859"), "frut" : [ "orange" ] }

19、$elemMatch 操作符:该操作符也是针对数组字段来进行的,我们可以针对数组中的元素做判断,是否满足某一个条件,满足就显示记录,不满足就不做操作。

                   语法:db.collectionName.find({<key>:{$elemMatch:{query}}})

参数说明:

                       key:要操作的字段名称,该字段必须是数组字段。

                       $elemMatch:操作符,对数组字段中的元素做判别,看看是否满足特定的条件

                       query:该查询条件是针对数组字段中元素进行操作的。

                    $elemMatch操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果

示例代码:

  1. //原始数据
  2. > db.students.find()
  3. { "_id" : ObjectId("5adb555ca62a80dd1239bb44"), "userName" : "Bob", "values" : [ , , , , , ] }
  4. { "_id" : ObjectId("5adb5568a62a80dd1239bb45"), "userName" : "Bob", "values" : }
  5. { "_id" : ObjectId("5adb556ea62a80dd1239bb46"), "userName" : "Bob", "values" : }
  6. { "_id" : ObjectId("5adb5571a62a80dd1239bb47"), "userName" : "Bob", "values" : }
  7. { "_id" : ObjectId("5adb5575a62a80dd1239bb48"), "userName" : "Bob", "values" : }
  8. { "_id" : ObjectId("5adb5578a62a80dd1239bb49"), "userName" : "Bob", "values" : }
  9. { "_id" : ObjectId("5adb557ca62a80dd1239bb4a"), "userName" : "Bob", "values" : }
  10.  
  11. //如果不做限制,数组字段和数字字段都查出来
  12. > db.students.find({"values":{"$gt":,"$lt":}})
  13. { "_id" : ObjectId("5adb555ca62a80dd1239bb44"), "userName" : "Bob", "values" : [ , , , , , ] }
  14. { "_id" : ObjectId("5adb556ea62a80dd1239bb46"), "userName" : "Bob", "values" : }
  15. { "_id" : ObjectId("5adb5571a62a80dd1239bb47"), "userName" : "Bob", "values" : }
  16.  
  17. //如果我只想针对数组字段操作,可以这样
  18. > db.students.find({"values":{"$elemMatch":{"$gt":,"$lt":}}})
  19. { "_id" : ObjectId("5adb555ca62a80dd1239bb44"), "userName" : "Bob", "values" : [ , , , , , ] }

20、内嵌文档的查询:如果按一般方式,由于字段结构的不同,查询结果也会有异,如果结构不同,但是内容相同的情况,我们就要使用文档对象的方式来执行查询,摆脱了文档结构的束缚。

                   语法:<outKey>.<innerKey>

参数说明:

                       outKey:外部文档(父文档)要操作的字段名称

                       innerKey:内部文档(子文档)要操作的字段名称

示例代码:

  1. //原始数据
  2. > db.names.find()
  3. { "_id" : ObjectId("5adb5915a62a80dd1239bb4b"), "name" : { "firstName" : "liu", "lastName" : "lei" } }
  4. { "_id" : ObjectId("5adb5937a62a80dd1239bb4c"), "name" : { "lastName" : "lei", "firstName" : "liu" } }
  5. { "_id" : ObjectId("5adb5944a62a80dd1239bb4d"), "name" : { "firstName" : "zhang", "lastName" : "san" } }
  6. { "_id" : ObjectId("5adb5951a62a80dd1239bb4e"), "name" : { "firstName" : "li", "lastName" : "si" } }
  7. { "_id" : ObjectId("5adb595ba62a80dd1239bb4f"), "name" : { "firstName" : "wang", "lastName" : "wu" } }
  8.  
  9. //一般查询:查询结果,大家看好了,其实第一条和第二条两个内容是完全一样的,只是顺序不一样,如果按一般方式查询,只能获取一条记录
  10. > db.names.find({"name":{"firstName":"liu","lastName":"lei"}})
  11. { "_id" : ObjectId("5adb5915a62a80dd1239bb4b"), "name" : { "firstName" : "liu", "lastName" : "lei" } }
  12.  
  13. //文档对象查询:查询结果,大家看好了,其实第一条和第二条两个内容是完全一样的,只是顺序不一样,如果按一般方式查询,只能获取一条记录
  14. > db.names.find({"name.firstName":"liu","name.lastName":"lei"})
  15. { "_id" : ObjectId("5adb5915a62a80dd1239bb4b"), "name" : { "firstName" : "liu", "lastName" : "lei" } }
  16. { "_id" : ObjectId("5adb5937a62a80dd1239bb4c"), "name" : { "lastName" : "lei", "firstName" : "liu" } }

好了,以上就是新增加进来的,以后学了新的东西在更新吧。主要是上班时间也不是很多,主要是靠周末或者晚上,一些东西很容易时间就飞了,时间控制不好,第二天就没精神了。
           
三、总结

今天就写到这里了,有关查询和更新的内容还很多,今天只是针对MongoDB的查询新增了一些操作符和相关语法。由于时间不是很充裕,所以这个进度,有可能就慢了,慢工出细活,也希望自己能更深入肌理,明白一二,如果有了心得我还会继续更新的。不忘初衷,继续努力吧。

MongoDb进阶实践之六 MongoDB查询命令详述(补充)的更多相关文章

  1. MongoDb进阶实践之五 MongoDB修改命令详述

    一.引言         上一篇文章我们已经详细介绍了MongoDB数据库的有关查询的内容,但是这只是所有查询命令的冰山一角.所有查询命令都写完也没有必要,我只是写了一些常用的命令,对MongoDB的 ...

  2. MongoDb进阶实践之三 Mongodb基本命令详解

    一.引言              从今天开始,我要正式开始介绍MongoDB的使用方法了.在此之前,我用了两篇文章分别介绍了如何在Linux系统和Windows系统上安装和配置MongoDB系统.如 ...

  3. MongoDb进阶实践之八 MongoDB的聚合初探

    一.引言 好久没有写东西了,MongoDB系列的文章也丢下好长时间了.今天终于有时间了,就写了一篇有关聚合的文章.一说到“聚合”,用过关系型数据库的人都应该知道它是一个什么东西.关系型数据库有“聚合” ...

  4. MongoDb进阶实践之三 MongoDB查询命令详述

    一.引言           上一篇文章我们已经介绍了MongoDB数据库的最基本操作,包括数据库的创建.使用和删除数据库,文档的操作也涉及到了文档的创建.删除.更新和查询,当然也包括集合的创建.重命 ...

  5. MongoDb进阶实践之四 MongoDB查询命令详述

    一.引言 上一篇文章我们已经介绍了MongoDB数据库的最基本操作,包括数据库的创建.使用和删除数据库,文档的操作也涉及到了文档的创建.删除.更新和查询,当然也包括集合的创建.重命名和删除.有了这些基 ...

  6. MongoDb进阶实践之七 MongoDB的索引入门

    一.引言     好久没有写东西了,MongoDB系列的文章也丢下好长时间了.今天终于有时间了,就写了一篇有关索引的文章.一说到"索引",用过关系型数据库的人都应该知道它是一个什么 ...

  7. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)

    Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...

  8. MongoDb进阶实践之一 如何在Linux(CentOS 7)上安装MongoDB

    一.NoSQL数据简介         1.NoSQL概念                   NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是 ...

  9. MongoDb进阶实践之二 如何在Windows上配置MongoDB

    一.引言            上一篇文章,我介绍了如何在Linux系统上安装和配置MongoDB,其实都不是很难,不需要安装和编译,省去了Make && Make Install 命 ...

随机推荐

  1. xxe漏洞检测及代码执行过程

    这两天看了xxe漏洞,写一下自己的理解,xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目録遍历等.首先存在漏洞的web服务一定是存 ...

  2. 前端双引号单引号,正则反向引用,js比较jq

    1.js,jq,css,html属性必须双,如果同时出现需要嵌套使用,属性的规范是双但是也可以用单测试有效 单引号现象举例:jq中获取元素标签是单引号:$('input').click:弹出也是单引号 ...

  3. Python扩展模块——自动化(testlinkAPI的使用)

    使用TESTLINKAPI首先要安装TestLink_API_Python_client-0.6.4(当前最新版本) 目前只使用到了通过api获取testlink中的自定义字段and值 url = ' ...

  4. Python内置函数(19)——oct

    英文文档: oct(x) Convert an integer number to an octal string. The result is a valid Python expression. ...

  5. docker安装+测试环境的搭建---

    漏洞演练环境docker地址:http://vulhub.org/#/environments/ 环境:kali-linux-2017.2-amd64.iso 一.docker安装 1.先更新一波源: ...

  6. Linux背景知识(1)RedHat和Centos

    Redhat有收费的商业版和免费的开源版,商业版的业内称之为RHEL(Red Hat Enterprise Linux)系列, 而这个CentOS(Community ENTerprise Opera ...

  7. Django 基于session认证 小作业

    基于session认证  相亲小作业 用户登录 如果男用户登录,显示女生列表 如果女用户登录,显示男生列表 """s4day74 URL Configuration Th ...

  8. django知识回顾

    一.web框架 1.web框架本质 众所周知,对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 1.浏览器(socket客户端) 2.发送IP和端 ...

  9. 关于web XSS注入问题

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,附带公司写的一个filer. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经 ...

  10. 换个视角来看git命令与代码库发生网络交互报错事件

    git的一系列命令中像 clone.pull.push等与代码库发生网络交互时,可能报下面的错误信息 fatal: remote error: CAPTCHA required Your Stash ...