Python爬虫--数据存储 (6)

数据库命令

db # 查看当前数据库名称 show dbs # 查看所有数据库名称,列出所有在物理上存在的数据库 use 数据库名称 # 切换数据库 �/*如果数据库不存在,则指向数据库,直到插入数据或创建集合时数据库才被创建。 默认的数据库为test,如果没有创建新的数据库,则集合存放在test数据库中*/ db.dropDatabase() # 删除当前指向的数据库,如果数据库不存在,则什么也不做

db相当于MySQL中的database

集合命令

db.createCollection(name, options) # 创建集合 /*name:要创建的集合名称,必须有。db.createCollection(\'stu\') 选项参数options:文档,用于指定集合的配置。 capped:默认False,不设置上限,Ture,设置(集合大小)上限 size:capped值为True时指定,上限大小,文档达到上限时,会覆盖之前数据,单位字节 db.createCollection("sub", {capped:true, size:10}) */ show collections # 查看当前数据库的集合 db.集合名称.drop() # 删除集合

这里的集合相当于MySQL的表

数据操作命令

db.集合名称.insert(document) # 新增一条文档信息 /* db.stu.insert({name:\'qj\', gender:1}) */ db.集合名称.find() # 查询当前集合所有文档信息 db.集合名称.update(<query>, <update>, {multi:<boolean>}) /* 参数: query:查询条件 update:更新操作符 multi:可选,默认False,只更新找到的第一条记录,True,把满足条件的文档全部更新 示例: 全文档更新 db.stu.update({name:\'hr\', {name:\'mnc\'}}) 指定属性更新 �db.stu.insert({\'name\':\'hr\', gender:0}) db.stu.update({name:\'hr\',{$set:{name:\'hys\'}}}) 修改多条匹配到的数据 db.stu.update({}, {$set:{gender:0}}, {multi:true})��*/ � db.集合名称.save(document) # 保存 /* 如果文档的_id已存在,则修改;如果文档的_id不存在,则添加 db.stu.save({_id:\'20160102\', \'name\':\'yk\', gender:1}) db.stu.save({_id:\'20160102\', \'name\': \'wyk\'})*/ db.集合名称.remove(<query>, {justOne:<boolean>}) # 删除 /* 参数: query:删除文档的条件 justOne:设为True或1,则只删除一条,默认为False,删除多条 示例: 只删除一条 db.stu.remove({gender:0}, {justOne:true}) 全部删除 db.stu.remove({})*/

这里的文档document相当于MySQL的一行数据,其语法格式相当于JavaScript的JSON对象

数据查询命令

db.集合名称.find({条件文档}) # 根据条件查询,返回结果集 db.集合名称.findOne({条件文档}) # 根据条件查询,返回第一个 db.集合名称.find({条件文档}).pretty() # 将查询的结果格式化 $lt, $lte, $gt, $gte, $ne /* 等于,默认是等于判断,没有运算符 小于$lt 小于或等于$lte 大于$gt 大于或等于$gte 不等于$ne 示例: 查询名称等于\'qj\'的学生 db.stu.find({name:\'gj\'}) 查询年龄大于或等于18的学生 db.stu.find({age:{\$gte:18}}) */ and, or # 逻辑与,逻辑或 默认是逻辑与 /* 示例: 查询年龄大于或等于18,并且性别为1的学生 db.stu.find({age:{$gte:18},gender:1}) 查询年龄大于18或性别为1的学生 db.stu.find({$or:[{age:{$gt:18}}, {gender:1}]}) 查询年龄大于18或性别为1的学生,并且学生的姓名为gj db.stu.find({$or[{age:{$gte:18}}, {gender:1}], name:\'gj\'}) */ $in, $nin # 是否在某个范围内 /* 查询年龄为18,28的学生 db.stu.find({age:{$in:[18, 28]}}) */ $regex, // # 编写正则表达式 /* 查询姓黄的学生 db.stu.find({name:/^黄/}) db.stu.find({name:{$regex:\'^黄\'}}) */ $where # 后写一个函数,返回满足条件的数据 /*查询年龄大于20的学生 db.stu.find({$where:function(){return this.age>20}}) */ limit() # 用于读取指定数量的文档 /*语法:db.集合名称.find().limit(NUMBER) 参数NUMBER表示要获取文档的条数 未指定,则显示集合跌所有文档 例:查询2条学生信息 db.stu.find().limit(2) */ skip() # 用于跳过指定数量的文档 /*语法:db.集合名称.find()/skip(NUMBER) 参数number表示跳过的记录条数,默认为0 示例: 查询从第3条开始的学生信息 db.stu.find().skip(2) 方法limit()和skip()可以一起使用,不分先后 sb.stu.find().limit(4).skip(1) db.stu.find().skip(1).limit(4) */ 投影 # 在查询的结果中,只选择必要的字段,而不是一个文档的整个字段 /* 参数为字段与值,值1为显示,值0为不显示 db.stu.find({}, {name:1, gender:1}) db.stu.find({}, {_id:0, name:1, gender:1}) */ sort() # 用于对结果集进行排序 /* 语法:db.集合名称.find().sort({字段1:1, 字段2:-1,...}) 参数1为升序,参数-1为降序 db.stu.find().sort({gender:-1, age:1}) */ count() # 用于统计结果集中文档条数 /* 语法:db.集合名称.find({条件}).count() db.集合名称.count({条件}) 示例: db.stu.find({gender:1}).count() db.stu.count({age:{$gt:20}, gender:1}) */ distinct() # 对数据进行去重 /* 语法:db.集合名称.distinct(\'去重字段\', {条件}) 例:查找年龄大于18的性别(去重) db.stu.distinct(\'gender\', {age:{$gt:18}}) */

管道命令

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpjgd.html