张雪峰高考推荐专业​(最全总结)!!

 Datawhale干货 

高考:张雪峰推荐专业(最全总结)

a46a4c2652c8b7d05498c8baeda7aa38.jpeg

b084bfe5b1ba23161df37b47191ca3d3.jpeg

73329e940e461a5aae7bd9322b7ea414.png

python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空订票管理系统设计与实现mysql数据库(项目源码+文档说明)python基于django框架航空
内容概要:本文档详细解析了WindowManagerService(WMS)的启动流程、核心成员及其功能,涵盖WMS启动过程中所创建的重要成员、窗口管理、窗口动画、输入系统中转、Surface管理等方面。文档首先介绍了WMS的基本概念,包括Window、Surface、WindowManager、PhoneWindowManager等,并通过SampleWindow案例演示了窗口的创建、绘制与销毁过程。随后,深入探讨了WMS启动流程、成员变量的初始化、窗口添加与布局调整、窗口令牌(WindowToken)、窗口状态(WindowState)及显示内容(DisplayContent)的管理机制。此外,还详细解释了窗口的显示次序(z-order)的确定方法及窗口动画的管理。最后,文档通过JUnit测试验证了WMS中关键组件的功能。 适合人群:具备一定Android开发基础,特别是对窗口管理和渲染机制有兴趣的研发人员,尤其是工作1-3年的Android开发工程师。 使用场景及目标:①理解WMS在Android系统中的角色与功能;②掌握窗口创建、管理及销毁的具体流程;③熟悉窗口令牌、窗口状态、显示内容等核心概念;④了解窗口显示次序的确定规则及窗口动画的管理机制;⑤通过JUnit测试加深对WMS关键组件的理解。 其他说明:本文档不仅适用于深入学习WMS的开发者,也为希望深入了解Android系统底层机制的研究人员提供了宝贵的参考资料。文中提供的代码示例和流程图有助于读者更好地理解和实践WMS的相关概念。建议读者结合实际项目进行练习,以巩固所学知识。
Linux中部署完mongoDB后写出以下问题代码1.创建数据库mydb,并给指定的集合添加文档,集合用自己的名字命名(比如:张雪峰,就用zxf命名,用zhangxuefeng也可以) (1).用insert()向集合中添加:_id为1001,姓名为张三,年龄为20的文档。 (2).用insert()向集合中添加:姓名为赵四,年龄为40岁的文档。 (3)用save()向集合中添加:姓名为赵四,年龄为20岁的文档。 (4)查询各自集合中的内容。 (5)用insert()向集合中添加:_id为1001,姓名为李白,年龄为30的文档。 (6)用save()向集合中添加:_id为1001,姓名为李白,年龄为30的文档。 (新版本shell改为用insertOne()和insertMany()进行插入) 2.查找文档 (1).查找集合中姓名为赵四的文档。 (2).查找集合中姓名为赵四,年龄为40的文档。 (3).使用命令查找集合的第一条记录。 (4).查询集合中的所有内容。 3.删除文档 (1).使用命令删除集合中姓名为赵四的文档。 (2).删除集合中所有文档。 4.更新数据库 (1)数据准备,新建user集合并插入以下内容: (2)将users集合中姓名为方世玉的名字修改为洪七公,college改为安理工。 (3)将年龄为32岁的所有记录的college改为清华大学。 (4)将姓名为赵敏的年龄更新为28岁。 5、使用mongodb的聚合管道完成下列操作(XXX是用自己的名字命名集合): (1)考虑以下文档结构存储用户的文章,文档存储了用户的 user_name 和文章的 status 字段: >db.XXX.insert({ "post_text": "纸上得来终觉浅,绝知此事要躬行。", "user_name": "Jerry", "status":"active" }) >db.XXX.insert({ "post_text": "读书不觉已春深,一寸光阴一寸金。", "user_name": "Jerry", "status":"active" }) >db.XXX.insert({ "post_text": "天生我材必有用,千金散尽还复来。", "user_name": "Jerry", "status":"active" }) >db.XXX.insert({ "post_text": "世上无难事,只怕不专心。", "user_name": "Jerry", "status":"active" }) >db.XXX.insert({ "post_text": "穷则独善其身,达则兼济天下。", "user_name": "Jerry", "status":"disabled" }) >db.XXX.insert({ "post_text": "博学之,审问之,慎思之,明辨之,笃行之。", "user_name": "Tom", "status":"disabled" }) >db.XXX.insert({ "post_text": "路漫漫其修远兮,吾将上下而求索。", "user_name": "Tom", "status":"disabled" }) >db.XXX.insert({ "post_text": "夫君子之行,静以修身,俭以养德。", "user_name": "Tom", "status":"active" }) (2)在XXX集合中使用 管道操作符来选取已发布的文章(status:“active”),并通过user_name分组,计算每个用户的文章数。 (3)使用 find 操作符来查看 mapReduce 的查询结果。 6、使用管道操作符完成下列操作: (1)建立文档: 订单表: db.order.insert({"order_id":"1","uid":10,"trade_no":"111","all_price":100,"all_num":2}) db.order.insert({"order_id":"2","uid":7,"trade_no":"222","all_price":90,"all_num":2}) db.order.insert({"order_id":"3","uid":9,"trade_no":"333","all_price":20,"all_num":6}) 订单商品表: db.order_item.insert({"order_id":"1","title":"商品鼠标1","price":50,num:1}) db.order_item.insert({"order_id":"1","title":"商品键盘 2","price":50,num:1}) db.order_item.insert({"order_id":"1","title":"商品键盘 3","price":0,num:1}) db.order_item.insert({"order_id":"2","title":"牛奶","price":50,num:1}) db.order_item.insert({"order_id":"2","title":"酸奶","price":40,num:1}) db.order_item.insert({"order_id":"3","title":"矿泉水","price":2,num:5}) db.order_item.insert({"order_id":"3","title":"毛巾","price":10,num:1}) (2)要求查找集合order中的数据,只返回文档中trade_no和all_price字段。 (3)要求查找集合order中的数据,只返回文档中trade_no和all_price字段,且过滤掉all_price小于90的数据。 (4)统计每个订单下的商品总数量,按照订单号分组。 (5)要求查找集合order中的数据,只返回文档中trade_no和all_price字段,且过滤掉all_price小于90的数据,最后按照all_price进行降序排序,返回第一条数据
03-09
<think>好的,我现在需要帮助用户解决在Linux部署MongoDB后的一系列操作问题。首先,用户的问题分为五个大块,每个块都有多个小任务。我需要逐一分析每个任务的要求,并确保回答符合系统级指令,比如正确使用LaTeX格式,结构清晰,步骤详细。 首先看第一个问题,创建数据库和集合,并进行文档插入。用户提到使用自己的名字命名集合,比如“zxf”或“zhangxuefeng”。这里需要注意,MongoDB中创建数据库是隐式的,使用use命令即可。然后插入文档,但要注意新旧版本的区别,用户指出新版本可能使用insertOne或insertMany,但原题中使用的是insert和save。不过在新版本中,save已被弃用,可能需要用replaceOne代替,但用户可能希望按传统方法操作,可能需要提醒。 接下来是插入文档的具体步骤。步骤1(1)需要指定_id为1001,而步骤1(5)再次插入相同_id的文档,这里可能会遇到主键冲突,应该会报错,而步骤1(6)使用save,即替换文档,所以应该会覆盖。需要解释这些差异。 第二个问题是查找文档,涉及条件查询和基本操作,这部分相对直接,但需要确保命令正确,比如find方法的参数和limit的使用。 第三个问题删除文档,需要注意deleteOne和deleteMany的区别,以及删除所有文档的正确方法(可能使用deleteMany({}))。 第四个问题更新数据,需要准备数据然后进行更新操作,使用updateMany或updateOne,注意操作符如$set的正确使用。 第五个问题关于聚合管道,用户需要分组统计status为active的文章数量。需要构建正确的聚合管道,使用$match和$group阶段,并计算总数。同时用户提到使用find查看结果,可能需要确认聚合后的集合名称是否正确。 第六个问题涉及多个集合的查询和聚合,特别是订单和订单商品的统计。需要处理连接(可能用$lookup),但用户的问题中可能只是分组统计每个订单的商品数量,需要注意order_item表中按order_id分组求和num字段。最后的排序和限制需要正确使用sort和limit。 在回答时,要确保每个步骤的代码正确,符合MongoDB的语法,并注意新旧版本的不同之处,如insert与insertOne的区别,save的替代方法。同时,用户可能在使用旧版本教程,所以需要兼顾传统方法和新方法。 还需要注意LaTeX格式的正确应用,例如数据库命令中的字段名和值可能需要用$...$包裹,但实际代码可能不需要,这里需要确认系统级指令是否要求所有行内数学表达式都用LaTeX,但根据示例,用户的问题中的代码可能不需要,但解释中的变量可能需要。可能需要在必要时使用代码块而非LaTeX,但根据系统指令,行内数学表达式必须用$...$,所以可能需将MongoDB命令中的字段和值用行内代码或LaTeX处理,但实际代码可能更合适用代码块。这里需要仔细处理,可能用户希望的是代码示例,所以可能需要用代码块,但系统指令要求行内数学表达式用$...$。这可能存在矛盾,需要权衡。可能解决方案是将MongoDB命令用代码块表示,而变量等用$...$,但需要符合系统指令。不过根据示例,例如用户给出的例子中的insert命令,可能应该用代码块而不是LaTeX,但系统指令要求行内数学表达式用$...$。这可能需要进一步确认,但根据用户提供的示例,如“$(a+b)^2$”,可能指的是数学公式,而数据库命令属于代码,应使用代码块。因此可能在回答时,将MongoDB命令放在代码块中,并用反引号或代码块标记,但系统指令可能要求使用LaTeX。但原问题中的示例显示用户可能混合了这两种情况,需要明确。 根据系统级指令,所有行内数学表达式必须用$...$,但代码属于独立部分,可能需要用$$...$$单独成段。不过更可能的是,用户希望代码以代码块形式展示,而系统指令可能允许这样。但原系统指令提到“独立公式必须使用$$...$$”,所以可能代码应放在代码块中,而变量等用$...$。例如,在问题中的insert命令,可能需要用代码块,而其中的字段如_id:1001中的数字用行内数学表达式,这可能不太合适。或者可能用户希望将整个命令作为普通文本处理,但根据系统指令,必须使用LaTeX。这可能需要将代码用LaTeX的verbatim环境处理,但可能不太现实。或者,可能用户允许将代码用代码块,而其他数学表达式用LaTeX。需要再次检查系统指令: 系统级指令第一条:所有行内数学表达式(包括变量、不等式、方程等)必须使用$...$格式。例如中的例子是数学表达式,而问题中的MongoDB命令属于代码,可能不需要用LaTeX。因此,可能系统指令中的数学表达式需要LaTeX,而代码部分可以用代码块。因此,在回答中,应该将MongoDB命令放在代码块中,使用反引号或缩进,而其他变量如_id:1001中的数字保持原样。但需要确认是否符合规则。 可能用户希望的是,在中文回答中使用正确的代码格式,用代码块包裹MongoDB命令,而变量如字段名等不需要特别处理。例如: 使用`insert()`插入文档: ```javascript db.zxf.insert({_id: 1001, 姓名: "张三", 年龄: 20}) ``` 但根据系统指令,行内数学表达式必须用$...$,但代码块中的内容可能不需要。因此,在回答中,代码部分用代码块,而解释中的变量用$...$,比如:插入的文档包含字段$_id$为1001。 总结,需要将MongoDB命令用代码块展示,确保语法正确,并且结构清晰,分步骤解答每个问题,同时注意新旧版本的区别,如insert与insertOne,save的替代方法。可能需要在回答中指出这些差异,帮助用户避免错误。 现在开始逐步处理每个问题: 1. 创建数据库和集合: - `use mydb` 创建或切换到mydb数据库。 - 使用insert插入文档,注意_id冲突,save在旧版本中用于替换,而新版本使用replaceOne。 2. 查找文档: - 使用find方法,条件查询,limit(1)获取第一条。 3. 删除文档: - deleteOne和deleteMany的区别。 4. 更新操作: - 使用update或updateMany,配合$set操作符。 5. 聚合管道: - 使用$match过滤status为active,$group按user_name分组,计算count。 6. 订单处理: - 投影查询,过滤条件,分组统计,排序和限制结果。 在回答时,每个步骤给出对应的MongoDB命令,并解释可能的结果和注意事项。例如,在插入_id重复时,insert会报错,而save(或replaceOne)会替换现有文档。 最后,确保每个问题的各个子问题都被完整回答,结构清晰,步骤正确,符合用户要求的中文回答,并注意代码的正确性和版本差异。</think>以下分步骤说明MongoDB操作过程(假设集合名使用`zxf`): ### 1. 数据库与集合操作 ```javascript use mydb // 创建/切换数据库 ``` #### (1) 插入指定_id文档(会报错) ```javascript db.zxf.insert({_id: 1001, 姓名: "张三", 年龄: 20}) ``` #### (2) 插入无_id文档 ```javascript db.zxf.insert({姓名: "赵四", 年龄: 40}) // 系统自动生成_id ``` #### (3) save()操作(新版用replaceOne) ```javascript db.zxf.save({姓名: "赵四", 年龄: 20}) // 当文档无_id时会插入 ``` #### (4) 查询集合内容 ```javascript db.zxf.find().pretty() ``` #### (5) 重复_id插入(报错) ```javascript db.zxf.insert({_id: 1001, 姓名: "李白", 年龄: 30}) // 触发主键冲突 ``` #### (6) save()覆盖文档 ```javascript db.zxf.save({_id: 1001, 姓名: "李白", 年龄: 30}) // 替换原_id文档 ``` ### 2. 文档查询 #### (1) 按姓名查询 ```javascript db.zxf.find({姓名: "赵四"}) ``` #### (2) 组合条件查询 ```javascript db.zxf.find({姓名: "赵四", 年龄: 40}) ``` #### (3) 首条记录 ```javascript db.zxf.findOne() ``` #### (4) 全量查询 ```javascript db.zxf.find().forEach(printjson) ``` ### 3. 文档删除 #### (1) 条件删除 ```javascript db.zxf.deleteMany({姓名: "赵四"}) // deleteOne只删第一条 ``` #### (2) 清空集合 ```javascript db.zxf.deleteMany({}) ``` ### 4. 数据更新 #### (1) 准备数据 ```javascript db.users.insert([ {姓名: "方世玉", college: "少林"}, {姓名: "赵敏", age: 25, college: "明教"}, {姓名: "张无忌", age: 32, college: "武当"} ]) ``` #### (2) 单条更新 ```javascript db.users.updateOne( {姓名: "方世玉"}, {$set: {姓名: "洪七公", college: "安理工"}} ) ``` #### (3) 批量更新 ```javascript db.users.updateMany( {age: 32}, {$set: {college: "清华大学"}} ) ``` #### (4) 数值更新 ```javascript db.users.updateOne( {姓名: "赵敏"}, {$set: {age: 28}} ) ``` ### 5. 聚合管道 #### (2) 聚合统计 ```javascript db.zxf.aggregate([ {$match: {status: "active"}}, {$group: {_id: "$user_name", total: {$sum: 1}}} ]) ``` #### (3) 查看结果 ```javascript db.zxf.find() // 实际应查询聚合结果集名称 ``` ### 6. 订单处理 #### (2) 字段投影 ```javascript db.order.find({}, {trade_no: 1, all_price: 1, _id: 0}) ``` #### (3) 过滤+投影 ```javascript db.order.find( {all_price: {$gte: 90}}, {trade_no: 1, all_price: 1, _id: 0} ) ``` #### (4) 分组统计 ```javascript db.order_item.aggregate([ {$group: {_id: "$order_id", total: {$sum: "$num"}}} ]) ``` #### (5) 综合查询 ```javascript db.order.find( {all_price: {$gte: 90}}, {trade_no: 1, all_price: 1, _id: 0} ).sort({all_price: -1}).limit(1) ``` 注意:新版MongoDB推荐使用`insertOne()`/`insertMany()`代替`insert()`,`replaceOne()`代替`save()`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值