首页

毕业论文

首页 毕业论文 问题

毕业论文用了mongodb怎么写

发布时间:

毕业论文用了mongodb怎么写

计算机网络技术专业毕业论文题目

你是不是在为选计算机网络技术专业毕业论文题目烦恼呢?以下是我为大家整理的关于计算机网络技术专业毕业论文题目,希望大家喜欢!

1. 基于移动互联网下服装品牌的推广及应用研究

2. 基于Spark平台的恶意流量监测分析系统

3. 基于MOOC翻转课堂教学模式的设计与应用研究

4. 一种数字货币系统P2P消息传输机制的设计与实现

5. 基于OpenStack开放云管理平台研究

6. 基于OpenFlow的软件定义网络路由技术研究

7. 未来互联网试验平台若干关键技术研究

8. 基于云计算的海量网络流量数据分析处理及关键算法研究

9. 基于网络化数据分析的社会计算关键问题研究

10. 基于Hadoop的网络流量分析系统的研究与应用

11. 基于支持向量机的移动互联网用户行为偏好研究

12. “网络技术应用”微课程设计与建设

13. 移动互联网环境下用户隐私关注的影响因素及隐私信息扩散规律研究

14. 未来互联网络资源负载均衡研究

15. 面向云数据中心的虚拟机调度机制研究

16. 基于OpenFlow的数据中心网络路由策略研究

17. 云计算环境下资源需求预测与优化配置方法研究

18. 基于多维属性的社会网络信息传播模型研究

19. 基于遗传算法的云计算任务调度算法研究

20. 基于OpenStack开源云平台的网络模型研究

21. SDN控制架构及应用开发的研究和设计

22. 云环境下的资源调度算法研究

23. 异构网络环境下多径并行传输若干关键技术研究

24. OpenFlow网络中QoS管理系统的研究与实现

25. 云协助文件共享与发布系统优化策略研究

26. 大规模数据中心可扩展交换与网络拓扑结构研究

27. 数据中心网络节能路由研究

28. Hadoop集群监控系统的设计与实现

29. 网络虚拟化映射算法研究

30. 软件定义网络分布式控制平台的研究与实现

31. 网络虚拟化资源管理及虚拟网络应用研究

32. 基于流聚类的网络业务识别关键技术研究

33. 基于自适应流抽样测量的网络异常检测技术研究

34. 未来网络虚拟化资源管理机制研究

35. 大规模社会网络中影响最大化问题高效处理技术研究

36. 数据中心网络的流量管理和优化问题研究

37. 云计算环境下基于虚拟网络的资源分配技术研究

38. 基于用户行为分析的精确营销系统设计与实现

39. P2P网络中基于博弈算法的优化技术研究

40. 基于灰色神经网络模型的网络流量预测算法研究

41. 基于KNN算法的Android应用异常检测技术研究

42. 基于macvlan的Docker容器网络系统的设计与实现

43. 基于容器云平台的网络资源管理与配置系统设计与实现

44. 基于OpenStack的SDN仿真网络的研究

45. 一个基于云平台的智慧校园数据中心的设计与实现

46. 基于SDN的数据中心网络流量调度与负载均衡研究

47. 软件定义网络(SDN)网络管理关键技术研究

48. 基于SDN的数据中心网络动态负载均衡研究

49. 基于移动智能终端的医疗服务系统设计与实现

50. 基于SDN的网络流量控制模型设计与研究

51. 《计算机网络》课程移动学习网站的设计与开发

52. 数据挖掘技术在网络教学中的应用研究

53. 移动互联网即时通讯产品的用户体验要素研究

54. 基于SDN的负载均衡节能技术研究

55. 基于SDN和OpenFlow的流量分析系统的研究与设计

56. 基于SDN的网络资源虚拟化的研究与设计

57. SDN中面向北向的`控制器关键技术的研究

58. 基于SDN的网络流量工程研究

59. 基于博弈论的云计算资源调度方法研究

60. 基于Hadoop的分布式网络爬虫系统的研究与实现

61. 一种基于SDN的IP骨干网流量调度方案的研究与实现

62. 基于软件定义网络的WLAN中DDoS攻击检测和防护

63. 基于SDN的集群控制器负载均衡的研究

64. 基于大数据的网络用户行为分析

65. 基于机器学习的P2P网络流分类研究

66. 移动互联网用户生成内容动机分析与质量评价研究

67. 基于大数据的网络恶意流量分析系统的设计与实现

68. 面向SDN的流量调度技术研究

69. 基于P2P的小额借贷融资平台的设计与实现

70. 基于移动互联网的智慧校园应用研究

71. 内容中心网络建模与内容放置问题研究

72. 分布式移动性管理架构下的资源优化机制研究

73. 基于模糊综合评价的P2P网络流量优化方法研究

74. 面向新型互联网架构的移动性管理关键技术研究

75. 虚拟网络映射策略与算法研究

76. 互联网流量特征智能提取关键技术研究

77. 云环境下基于随机优化的动态资源调度研究

78. OpenFlow网络中虚拟化机制的研究与实现

79. 基于时间相关的网络流量建模与预测研究

80. B2C电子商务物流网络优化技术的研究与实现

81. 基于SDN的信息网络的设计与实现

82. 基于网络编码的数据通信技术研究

83. 计算机网络可靠性分析与设计

84. 基于OpenFlow的分布式网络中负载均衡路由的研究

85. 城市电子商务物流网络优化设计与系统实现

86. 基于分形的网络流量分析及异常检测技术研究

87. 网络虚拟化环境下的网络资源分配与故障诊断技术

88. 基于中国互联网的P2P-VoIP系统网络域若干关键技术研究

89. 网络流量模型化与拥塞控制研究

90. 计算机网络脆弱性评估方法研究

91. Hadoop云平台下调度算法的研究

92. 网络虚拟化环境下资源管理关键技术研究

93. 高性能网络虚拟化技术研究

94. 互联网流量识别技术研究

95. 虚拟网络映射机制与算法研究

96. 基于业务体验的无线资源管理策略研究

97. 移动互联网络安全认证及安全应用中若干关键技术研究

98. 基于DHT的分布式网络中负载均衡机制及其安全性的研究

99. 高速复杂网络环境下异常流量检测技术研究

100. 基于移动互联网技术的移动图书馆系统研建

101. 基于连接度量的社区发现研究

102. 面向可信计算的分布式故障检测系统研究

103. 社会化媒体内容关注度分析与建模方法研究

104. P2P资源共享系统中的资源定位研究

105. 基于Flash的三维WebGIS可视化研究

106. P2P应用中的用户行为与系统性能研究

107. 基于MongoDB的云监控设计与应用

108. 基于流量监测的网络用户行为分析

109. 移动社交网络平台的研究与实现

110. 基于 Android 系统的 Camera 模块设计和实现

111. 基于Android定制的Lephone系统设计与实现

112. 云计算环境下资源负载均衡调度算法研究

113. 集群负载均衡关键技术研究

114. 云环境下作业调度算法研究与实现

115. 移动互联网终端界面设计研究

116. 云计算中的网络拓扑设计和Hadoop平台研究

117. pc集群作业调度算法研究

118. 内容中心网络网内缓存策略研究

119. 内容中心网络的路由转发机制研究

120. 学习分析技术在网络课程学习中的应用实践研究

MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。

(1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。

使用这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。

(2)易伸缩,自动故障转移。易伸缩指的是提供了分片能力,能对数据集进行分片,数据的存储压力分摊给多台服务器。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从节点为主节点,达到故障转移。

(3)数据模型因为是面向对象的,所以可以表示丰富的、有层级的数据结构,比如博客系统中能把“评论”直接怼到“文章“的文档中,而不必像myqsl一样创建三张表来描述这样的关系。

(1)文档数据类型

SQL类型的数据库是正规化的,可以通过主键或者外键的约束保证数据的完整性与唯一性,所以SQL类型的数据库常用于对数据完整性较高的系统。MongoDB在这一方面是不如SQL类型的数据库,且MongoDB没有固定的Schema,正因为MongoDB少了一些这样的约束条件,可以让数据的存储数据结构更灵活,存储速度更加快。

(2)即时查询能力

MongoDB保留了关系型数据库即时查询的能力,保留了索引(底层是基于B tree)的能力。这一点汲取了关系型数据库的优点,相比于同类型的NoSQL redis 并没有上述的能力。

(3)复制能力

MongoDB自身提供了副本集能将数据分布在多台机器上实现冗余,目的是可以提供自动故障转移、扩展读能力。

(4)速度与持久性

MongoDB的驱动实现一个写入语义 fire and forget ,即通过驱动调用写入时,可以立即得到返回得到成功的结果(即使是报错),这样让写入的速度更加快,当然会有一定的不安全性,完全依赖网络。

MongoDB提供了Journaling日志的概念,实际上像mysql的bin-log日志,当需要插入的时候会先往日志里面写入记录,再完成实际的数据操作,这样如果出现停电,进程突然中断的情况,可以保障数据不会错误,可以通过修复功能读取Journaling日志进行修复。

(5)数据扩展

MongoDB使用分片技术对数据进行扩展,MongoDB能自动分片、自动转移分片里面的数据块,让每一个服务器里面存储的数据都是一样大小。

MongoDB核心服务器主要是通过mongod程序启动的,而且在启动时不需对MongoDB使用的内存进行配置,因为其设计哲学是内存管理最好是交给操作系统,缺少内存配置是MongoDB的设计亮点,另外,还可通过mongos路由服务器使用分片功能。

MongoDB的主要客户端是可以交互的js shell 通过mongo启动,使用js shell能使用js直接与MongoDB进行交流,像使用sql语句查询mysql数据一样使用js语法查询MongoDB的数据,另外还提供了各种语言的驱动包,方便各种语言的接入。

mongodump和mongorestore,备份和恢复数据库的标准工具。输出BSON格式,迁移数据库。

mongoexport和mongoimport,用来导入导出JSON、CSV和TSV数据,数据需要支持多格式时有用。mongoimport还能用与大数据集的初始导入,但是在导入前顺便还要注意一下,为了能充分利用好mongoDB通常需要对数据模型做一些调整。

mongosniff,网络嗅探工具,用来观察发送到数据库的操作。基本就是把网络上传输的BSON转换为易于人们阅读的shell语句。

因此,可以总结得到,MongoDB结合键值存储和关系数据库的最好特性。因为简单,所以数据极快,而且相对容易伸缩还提供复杂查询机制的数据库。MongoDB需要跑在64位的服务器上面,且最好单独部署,因为是数据库,所以也需要对其进行热备、冷备处理。

因为本篇文章不是API手册,所有这里对shell的使用也是基础的介绍什么功能可以用什么语句,主要是为了展示使用MongoDB shell的方便性,如果需要知道具体的MongoDB shell语法可以查阅官方文档。

创建数据库并不是必须的操作,数据库与集合只有在第一次插入文档时才会被创建,与对数据的动态处理方式是一致的。简化并加速开发过程,而且有利于动态分配命名空间。如果担心数据库或集合被意外创建,可以开启严格模式。

以上的命令只是简单实例,假设如果你之前没有学习过任何数据库语法,同时开始学sql查询语法和MongoDB 查询语法,你会发现哪一个更简单呢?如果你使用的是java驱动去操作MongoDB,你会发现任何的查询都像Hibernate提供出来的查询方式一样,只要构建好一个查询条件对象,便能轻松查询(接下来会给出示例),博主之前熟悉ES6,所以入手MongoDB js shell完成没问题,也正因为这样简洁,完善的查询机制,深深的爱上了MongoDB。

使用java驱动链接MongoDB是一件非常简单的事情,简单的引用,简单的做增删改查。在使用完java驱动后我才发现spring 对MongoDB 的封装还不如官方自身提供出来的东西好用,下面简单的展示一下使用。

这里只举例了简单的链接与简单的MongoDB操作,可见其操作的容易性。使用驱动时是基于TCP套接字与MongoDB进行通信的,如果查询结果较多,恰好无法全部放进第一服务器中,将会向服务器发送一个getmore指令获取下一批查询结果。

插入数据到服务器时间,不会等待服务器的响应,驱动会假设写入是成功的,实际是使用客户端生成对象id,但是该行为可以通过配置配置,可以通过安全模式开启,安全模式可以校验服务器端插入的错误。

要清楚了解MongoDB的基本数据单元。在关系型数据库中有带列和行的数据表。而MongoDB数据的基本单元是BSON文档,在键值中有指向不定类型值的键,MongoDB拥有即时查询,但不支持联结操作,简单的键值存储只能根据单个键来获取值,不支持事务,但支持多种原子更新操作。

如读写比是怎样的,需要何种查询,数据是如何更新的,会不会存在什么并发问题,数据结构化的程度是要求高还是低。系统本身的需求决定mysql还是MongoDB。

在关于schema 的设计中要注意一些原则,比如:

数据库是集合的逻辑与物理分组,MongoDB没有提供创建数据库的语法,只有在插入集合时,数据库才开始建立。创建数据库后会在磁盘分配一组数据文件,所有集合、索引和数据库的其他元数据都保存在这些文件中,查阅数据库使用磁盘状态可通过。

集合是结构上或概念上相似得文档的容器,集合的名称可以包含数字、字母或 . 符号,但必须以字母或数字开头,完全。

限定集合名不能超过128个字符,实际上 . 符号在集合中很有用,能提供某种虚拟命名空间,这是一种组织上的原则,和其他集合是一视同仁的。在集合中可以使用。

其次是键值,在MongoDB里面所有的字符串都是UTF-8类型。数字类型包括double、int、long。日期类型都是UTC格式,所以在MongoDB里面看到的时间会比北京时间慢8小时。整个文档大小会限制在16m以内,因为这样可以防止创建难看的数据类型,且小文档可以提升性能,批量插入文档理想数字范围是10~200,大小不能超过16MB。

(1)索引能显著减少获取文档的所需工作量,具体的对比可以通过 .explain()方法进行对比

(2)解析查询时MongoDB通过最优计划选择一个索引进行查询,当没有最适合索引时,会先不同的使用各个索引进行查询,最终选出一个最优索引做查询

(3)如果有一个a-b的复合索引,那么仅针对a的索引是冗余的

(4)复合索引里的键的顺序是很重要的

(1)单键索引

(2)复合索引

(3)唯一性索引

(4)稀疏索引

如索引的字段会出现null的值,或是大量文档都不包含被索引的键。

如果数据集很大时,构建索引将会花费很长的时间,且会影响程序性能,可通过

当使用 mongorestore 时会重新构建索引。当曾经执行过大规模的删除时,可使用

对索引进行压缩,重建。

(1)查阅慢查询日志

(2)分析慢查询

注意新版本的MongoDB 的explain方法是需要参数的,不然只显示普通的信息。

本节同样主要简单呈现MongoDB副本集搭建的简易性,与副本集的强壮性,监控容易性

提供主从复制能力,热备能力,故障转移能力

实际上MongoDB对副本集的操作跟mysql主从操作是差不多的,先看一下mysql的主从数据流动过程

而MongoDB主要依赖的日志文件是oplog

写操作先被记录下来,添加到主节点的oplog里。与此同时,所有从结点复制oplog。首先,查看自己oplog里最后一条的时间戳;其次,查询主节点oplog里所有大于此时间戳的条目;最后,把那些条目添加到自己的oplog里并应用到自己的库里。从节点使用长轮询立即应用来自主结点oplog的新条目。

当遇到以下情况,从节点会停止复制

local数据库保存了所有副本集元素据和oplog日志

可以使用以下命令查看复制情况

每个副本集成员每秒钟ping一次其他所有成员,可以通过()看到节点上次的心跳检测时间戳和 健康 状况。

这个点没必要过多描述,但是有一个特殊场景,如果从节点和仲裁节点都被杀了,只剩下主节点,他会把自己降级成为从节点。

如果主节点的数据还没有写到从库,那么数据不能算提交,当该主节点变成从节点时,便会触发回滚,那些没写到从库的数据将会被删除,可以通过rollback子目录中的BSON文件恢复回滚的内容。

(1)使用单节点链接

只能链接到主节点,如果链接到从节点的话,会被拒绝写入操作,但是如果没有使用安全模式,因为mongo的fire and forget 特性,会把拒绝写入的异常给吃掉。

(2)使用副本集方式链接

能根据写入的情况自动进行故障转移,但是当副本集进行新的选举时,还是会出现故障,如果不使用安全模式,依旧会出现写不进去,但现实成功的情况。

分片是数据库切分的一个概念实现,这里也是简单总结为什么要使用分片以及分片的原理,操作。

当数据量过大,索引和工作数据集占用的内存就会越来越多,所以需要通过分片负载来解决这个问题

(1)分片组件

(2)分片的核心操作

分片一个集合:分片是根据一个属性的范围进行划分的,MongoDB使用所谓的分片键让每个文档在这些范围里找到自己的位置

块:是位于一个分片中的一段连续的分片键范围,可以理解为若干个块组成分片,分片组成MongoDB的全部数据

(3)拆分与迁移

块的拆分:初始化时只有一个块,达到最大块尺寸64MB或100000个文档就会触发块的拆分。把原来的范围一分为二,这样就有了两个块,每个块都有相同数量的文档。

迁移:当分片中的数据大小不一时会产生迁移的动作,比如分片A的数据比较多,会将分片A里面的一些块转移到分片B里面去。分片集群通过在分片中移动块来实现均衡,是由名为均衡器的软件进程管理的,任务是确保数据在各个分片中保持均匀分布,当集群中拥有块最多的分片与拥有块最少分片的块差大于8时,均衡器就会发起一次均衡处理。

启动两个副本集、三个配置服务器、一个mongos进程

配置分片

(1)分片查询类型

(2)索引

分片集合只允许在_id字段和分片键上添加唯一性索引,其他地方不行,因为这需要在分片间进行通信,实施起来很复杂。

当创建分片时,会根据分片键创建一个索引。

(1)分片键是不可修改的、分片键的选择非常重要

(2)低效的分片键

(3)理想的分片键

(1)部署拓扑

根据不同的数据中心划分

这里写图片描述

(2)最低要求

(3)配置的注意事项

需要估计集群大小,可使用以下命令对现有集合进行分片处理

(4)备份分片集群

备份分片时需要停止均衡器

(1)部署架构

使用64位机器、32位机器会制约mongodb的内存,使其最大值为

(2)cpu

mongodb 只有当索引和工作集都可放入内存时,才会遇到CPU瓶颈,CPU在mongodb使用中的作用是用来检索数据,如果看到CPU使用饱和的情况,可以通过查询慢查询日志,排查是不是查询的问题导致的,如果是可以通过添加索引来解决问题

mongodb写入数据时会使用到CPU,但是mongodb写入时间一次只用到一个核,如果有频繁的写入行为,可以通过分片来解决这个问题

(3)内存

大内存是mongodb的保障,如果工作集大小超过内存,将会导致性能下降,因为这将会增加数据加载入内存的动作

(4)硬盘

mongodb默认每60s会与磁盘强制同步一次,称为后台刷新,会产生I/O操作。在重启时mongodb会将磁盘里面的数据加载至内存,高速磁盘将会减少同步的时间

(5)文件系统

使用ext4 和 xfs 文件系统

禁用最后访问时间

(6)文件描述符

linux 默认文件描述符是1024,需要大额度的提升这个额度

(7)时钟

mongodb各个节点服务器之间使用ntp服务器

(1)绑定IP

启动时使用 - -bind_ip 命令

(2)身份验证

启动时使用 - -auth 命令

(3)副本集身份认证

使用keyFile,注意keyFile文件的权限必须是600,不然会启动不起来

(1)拓扑结构

搭建副本集至少需要两个节点,其中仲裁结点不需要有自己的服务器

(2)Journaling日志

写数据时会先写入日志,而此时的数据也不是直接写入硬盘,而是写入内存

但是Journaling日志会消耗内存,所以可以在主库上面关闭,在从库上面启动

可以单独为Journaling日志使用一块固态硬盘

在插入时,可以通过驱动确保Journaling插入后再反馈,但是会非常影响性能。

logpath 选项指定日志存储地址

-vvvvv 选项(v越多,输出越详细)

({logrotare:1}) 开启滚动日志

(1)serverStatus

这里写图片描述

(2)top

(3)()

动态展示mongodb活动数据

占用当前mongodb监听端口往上1000号的端口

(1)mongodump

把数据库内容导出成BSON文件,而mongorestore能读取并还原这些文件

(2)mongorestore

把导出的BSON文件还原到数据库

(3)备份原始数据文件

可以这么做,但是,操作之前需要进行锁库处理 ({fsync:1,lock:true})

db.$() 请求解锁操作,但是数据库不会立刻解锁,需要使用()验证。

(1)修复

mongd --repair 修复所有数据库

({repairDatabase:1}) 修复单个数据库

修复就是根据Jourling文件读取和重写所有数据文件并重建各个索引

(2)压紧

压紧,会重写数据文件,并重建集合的全部索引,需要停机或者在从库上面运行,如果需要在主库上面运行,需要添加force参数 保证加写锁。

(1)监控磁盘状态

(2)为提升性能检查索引和查询

总的来说,扫描尽可能少的文档。

保证没有冗余的索引,冗余的索引会占用磁盘空间、消耗更多的内存,在每次写入时还需做更多工作

(3)添加内存

dataSize 数据大小 和 indexSize 索引大小,如果两者的和大于内存,那么将会影响性能。

storageSize超过dataSize 数据大小 两倍以上,就会因磁盘碎片而影响性能,需要压缩。

毕业论文mongodb怎么写模板

创建配置文件/etc/, 写入如下内容logpath=/data/启动mongos./mongos -f /etc/

Mac  1分钟 直接在库里面操作额

查询:MySQL:SELECT * FROM userMongo:()MySQL:SELECT * FROM user WHERE name = 'starlee'Mongo:({‘name' : 'starlee'})插入:MySQL:INSERT INOT user (`name`, `age`) values ('starlee',25)Mongo:({‘name' : 'starlee', ‘age' : 25})如果你想在MySQL里添加一个字段,你必须:ALTER TABLE user….但在MongoDB里你只需要:({‘name' : 'starlee', ‘age' : 25, ‘email' : ''})删除:MySQL:DELETE * FROM userMongo:({})MySQL:DELETE FROM user WHERE age < 30Mongo:({‘age' : {$lt : 30}})$gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=更新:MySQL:UPDATE user SET `age` = 36 WHERE `name` = 'starlee'Mongo:({‘name' : 'starlee'}, {$set : {‘age' : 36}})MySQL:UPDATE user SET `age` = `age` + 3 WHERE `name` = 'starlee'Mongo:({‘name' : 'starlee'}, {$inc : {‘age' : 3}})MySQL:SELECT COUNT(*) FROM user WHERE `name` = 'starlee'Mongo:({‘name' : 'starlee'}).count()MySQL:SELECT * FROM user limit 10,20Mongo:().skip(10).limit(20)MySQL:SELECT * FROM user WHERE `age` IN (25, 35,45)Mongo:({‘age' : {$in : [25, 35, 45]}})MySQL:SELECT * FROM user ORDER BY age DESCMongo:().sort({‘age' : -1})MySQL:SELECT DISTINCT(name) FROM user WHERE age > 20Mongo:(‘name', {‘age': {$lt : 20}})MySQL:SELECT name, sum(marks) FROM user GROUP BY nameMongo:({key : {‘name' : true},cond: {‘name' : ‘foo'},reduce: function(obj,prev) { += ; },initial: {msum : 0}});MySQL:SELECT name FROM user WHERE age < 20Mongo:(‘ < 20′, {name : 1})发现很多人在搜MongoDB循环插入数据,下面把MongoDB循环插入数据的方法添加在下面:for(var i=0;i<100;i++)({uid:i,uname:'nosqlfan'+i});上面一次性插入一百条数据,大概结构如下:{ “_id” : ObjectId(“4c876e519e86023a30dde6b8″), “uid” : 55, “uname” : “nosqlfan55″ }{ “_id” : ObjectId(“4c876e519e86023a30dde6b9″), “uid” : 56, “uname” : “nosqlfan56″ }{ “_id” : ObjectId(“4c876e519e86023a30dde6ba”), “uid” : 57, “uname” : “nosqlfan57″ }{ “_id” : ObjectId(“4c876e519e86023a30dde6bb”), “uid” : 58, “uname” : “nosqlfan58″ }{ “_id” : ObjectId(“4c876e519e86023a30dde6bc”), “uid” : 59, “uname” : “nosqlfan59″ }{ “_id” : ObjectId(“4c876e519e86023a30dde6bd”), “uid” : 60, “uname” : “nosqlfan60″ }简易对照表SQL Statement Mongo Query Language StatementCREATE TABLE USERS (a Number, b Number) implicit; can be done explicitlyINSERT INTO USERS VALUES(1,1) ({a:1,b:1})SELECT a,b FROM users ({}, {a:1,b:1})SELECT * FROM users ()SELECT * FROM users WHERE age=33 ({age:33})SELECT a,b FROM users WHERE age=33 ({age:33}, {a:1,b:1})SELECT * FROM users WHERE age=33 ORDER BY name ({age:33}).sort({name:1})SELECT * FROM users WHERE age>33 ({'age':{$gt:33}})})SELECT * FROM users WHERE age<33 ({'age':{$lt:33}})})SELECT * FROM users WHERE name LIKE "%Joe%" ({name:/Joe/})SELECT * FROM users WHERE name LIKE "Joe%" ({name:/^Joe/})SELECT * FROM users WHERE age>33 AND age<=40 ({'age':{$gt:33,$lte:40}})})SELECT * FROM users ORDER BY name DESC ().sort({name:-1})CREATE INDEX myindexname ON users(name) ({name:1})CREATE INDEX myindexname ON users(name,ts DESC) ({name:1,ts:-1})SELECT * FROM users WHERE a=1 and b='q' ({a:1,b:'q'})SELECT * FROM users LIMIT 10 SKIP 20 ().limit(10).skip(20)SELECT * FROM users WHERE a=1 or b=2 ( { $or : [ { a : 1 } , { b : 2 } ] } )SELECT * FROM users LIMIT 1 ()EXPLAIN SELECT * FROM users WHERE z=3 ({z:3}).explain()SELECT DISTINCT last_name FROM users ('last_name')SELECT COUNT(*y) FROM users ()SELECT COUNT(*y) FROM users where AGE > 30 ({age: {'$gt': 30}}).count()SELECT COUNT(AGE) from users ({age: {'$exists': true}}).count()UPDATE users SET a=1 WHERE b='q' ({b:'q'}, {$set:{a:1}}, false, true)UPDATE users SET a=a+2 WHERE b='q' ({b:'q'}, {$inc:{a:2}}, false, true)DELETE FROM users WHERE z="abc" ({z:'abc'});###################################################一、操作符操作符相信大家肯定都知道了,就是等于、大于、小于、不等于、大于等于、小于等于,但是在mongodb里不能直接使用这些操作符。在mongodb里的操作符是这样表示的:(1) $gt > (大于)(2) $lt< (小于)(3) $gte>= (大于等于)(4) $lt<= (小于等于)(5) $ne!= (不等于)(6) $inin (包含)(7) $ninnot in (不包含)(8) $existsexist (字段是否存在)(9) $inc对一个数字字段field增加value(10) $set就是相当于sql的set field = value(11) $unset就是删除字段(12) $push把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去(13) $pushAll同$push,只是一次可以追加多个值到一个数组字段内(14) $addToSet增加一个值到数组内,而且只有当这个值不在数组内才增加。(15) $pop删除最后一个值:{ $pop : { field : 1 } }删除第一个值:{ $pop : { field : -1 } }注意,只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条。mongodb 及以后的版本才可以用(16) $pull从数组field内删除一个等于value值(17) $pullAll同$pull,可以一次删除数组内的多个值(18) $ 操作符是他自己的意思,代表按条件找出的数组里面某项他自己。这个比较坳口,就不说了。二、CURD 增、改、读、删增加复制代码代码如下:>insert({'name' => 'caleng', 'email' => 'admin#'});是不是灰常简单呀,对就是这么简单,它没有字段的限制,你可以随意起名,并插入数据复制代码代码如下:( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一条大于1记录( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 大于3的记录 全更新了( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 大于4的记录 只加进去了第一条( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 大于5的记录 全加进去 查询 复制代码代码如下:(array('name' => 'bailing'), array('email'=>''))(array('name' => 'bailing'), array('email''')) 大家可以看到查询我用了两种不同的写法,这是为什么,其实这跟做菜是一样的,放不同的调料,炒出的菜是不同的味道。下面给大家说一下,这两种调料的不同作用。findOne()只返回一个文档对象,find()返回一个集合列表。也就是说比如,我们只想查某一条特定数据的详细信息的话,我们就可以用findOne();如果想查询某一组信息,比如说一个新闻列表的时候,我们就可以作用find();那么我想大家这时一定会想到我想对这一个列表排序呢,no problem mongodb会为您全心全意服务 复制代码代码如下:().sort({age:1}); //按照age正序排列().sort({age:-1}); //按照age倒序排列(); //得到数据总数(1); //取数据的开始位置(10); //取数据的结束位置//这样我们就实现了一个取10条数据,并排序的操作。 删除删除有两个操作 remove()和drop() 复制代码代码如下:({"name",'jerry'}) //删除特定数据() //删除集合内的所有数据 distinct操作 复制代码代码如下:('name', {'age': {$lt : 20}}) 2. 熟悉MongoDB的数据操作语句,类sql数据库操作语法mongo (username,password) 添加用户(usrename,password) 设置数据库连接验证(fromhost) 从目标服务器克隆一个数据库(name) returns the help for the (fromdb,todb,fromhost) 复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址(name,{size:3333,capped:333,max:88888}) 创建一个数据集,相当于一个表() 取消当前库的当前操作() 删除当前数据库(func,args) run code (cname) 取得一个数据集合,同用法:db['cname'] or () 取得所有数据集合的名称列表() 返回最后一个错误的提示消息() 返回最后一个错误的对象() 取得当前服务器的连接对象get the server connection ().setSlaveOk() allow this connection to read from then nonmaster membr of a replica () 返回当操作数据库的名称() 返回上一个错误对象() ?什么等级() ?什么信息(name) get the db at the same server as this () 停止(杀死)在当前库的当前操作() 返回当前库的数据集状态()()() 返回当前数据库是否为共享数据库(username) 删除用户() 修复当前数据库()(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1}(level) 0=off,1=slow,2=() 关闭当前服务程序() 返回当前程序的版本信息数据集(表)操作语法({id:10}) 返回linlin数据集ID=10的数据集({id:10}).count() 返回linlin数据集ID=10的数据总数({id:10}).limit(2) 返回linlin数据集ID=10的数据集从第二条开始的数据集({id:10}).skip(8) 返回linlin数据集ID=10的数据集从0到第八条的数据集({id:10}).limit(2).skip(8) 返回linlin数据集ID=1=的数据集从第二条到第八条的数据({id:10}).sort() 返回linlin数据集ID=10的排序数据集([query]) 返回符合条件的一条数据() 返回此数据集所属的数据库名称() 返回些数据集的索引信息({key:...,initial:...,reduce:...[,cond:...]})(mayFunction,reduceFunction,)(query) 在数据集中删除一条数据(newName) 重命名些数据集名称(obj) 往数据集中插入一条数据() 返回此数据集的状态() 返回此数据集的存储大小() 返回此数据集的索引文件大小() 返回些数据集的总大小(query,object[,upsert_bool]) 在此数据集中更新一条数据() 验证此数据集() 返回数据集共享版本号

据我所知,目前mongoDB没有“或”这个东西但我刚才在网上查了下发现了下面的信息,你参考下吧在mongodb中有$or 操作符的,官网中给出的例子如下: Simple:( { $or : [ { a : 1 } , { b : 2 } ] } )With another ( { name : "bob" , $or : [ { a : 1 } , { b : 2 } ] } )The $or operator retrieves matches for each or clause individually and eliminates duplicates when returning results. A number of $or optimizations are planned for . See this thread for details. $or cannot be nested.

毕业论文写完了引用怎么弄

材料/工具:office2010;

1、首先打开需要添加文献的文章,选择需要添加文献的段落。

2、点击上方的引用选项,再点击“插入尾注”。插入尾注后,我们发现注释用的是“i”,我们可以对它进行更改。

3、点击引用选项中“脚注”的下拉选项,出现“脚注和尾注”的设置菜单。

4、在编号格式中,选择数字形式,点击“应用”,更改后就可以变为数字。;

5、下面我们给数字添加中括号,按下键盘上的“Ctrl+H”,打开查找和替换菜单。在查找内容中输入“^e”,在替换内容中输入“^&”,特殊符号均在大键盘位的数字键上,输入完成后点击“全部替换”即可。;

6、这时标注就已经添加完毕,文献的内容直接手打或粘贴即可。

毕业论文文献引用标注方法如下:

一、首先进入到要加入参考文献标注的地方。

二、菜单中“插入”——“引用”——“脚注和尾注”

三、确定后在该处就插入了一个上标“1”,而光标自动跳到文章最后,前面就是一个上标“1”,这就是输入第一个参考文献的地方,重复上面的步骤,加入其它参考文献标注

四、修改样式为[1] [2],在全文中,查找(Ctrl+F)——高级——特殊字符——尾注标记(它会自动显示^e)——替换为[^&]

注意:光标移到第一个标记处,即1处,再进行查找,替换

1.删除参考文献前面一条短横线

2.切换到普通视图,菜单中 “视图”——“普通”——“脚注”——尾注的编辑栏

五、在尾注右边的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。切换回到页面视图,完成。

注意事项

①作者姓名采用“姓在前名在后”原则,具体格式是: 姓,名字的首字母. 如: Malcolm Richard Cowley 应为:Cowley, .,如果有两位作者,第一位作者方式不变,&之后第二位作者名字的首字母放在前面,姓放在后面,如:Frank Norris 与Irving Gordon应为:Norris, F. & .;

②书名、报刊名使用斜体字,如:Mastering English Literature,English Weekly。

在毕业论文中引用参考文献需要遵循以下几个步骤:1. 列出所有被引用过的参考文献,包括书籍、期刊、论文、报告等。2. 选择相应的引用方式,通常有顺序编码制和著者-出版年制两种方式。可以根据论文所属学科领域和相关刊物的要求进行选择。3. 在正文中引用参考文献时,需要标注相应的引用格式,例如“(作者, 年份)”或“[编号]”,以便读者查找和参考。4. 在论文末尾的“参考文献”或“参考书目”部分,按照引用格式列出所有被引用过的参考文献,并按照学术规范和要求进行排版和格式化。需要注意的是,不同的学术领域和期刊可能会有不同的引用要求和格式,因此在撰写毕业论文时,最好遵循相关的学术规范和要求进行引用。同时,还需要注意参考文献的质量,选择高质量、有代表性的文献进行引用,以提高论文的可信度和权威性。以下是一个例子,展示了如何在毕业论文中引用参考文献:1. 在正文中引用根据Smith(2015)的研究,可知......2. 在参考文献中引用- 书籍Smith, J. (2015). The Art of Writing. 期刊文章Johnson, M. (2018). The Impact of Social Media on Communication. Journal of Communication, 68(2), 学位论文Wang, Y. (2020). A Study on the Effectiveness of Online Learning. [硕士学位论文]. 北京大学.需要注意的是,不同的学科领域和期刊可能有不同的引用格式,因此在撰写毕业论文时,最好遵循相关的学术规范和要求进行引用。同时,还需要注意参考文献的质量,选择高质量、有代表性的文献进行引用,以提高论文的可信度和权威性。

毕业论文文献引用标注如下:

1、直接引用:直接引用是把参考文献的名字直接写在文中,并将其单独成一行。

2、间接引用:间接引用是通过引语或者概括性语言将参考文献的意思呈现在文中,但不直接出处。 引用时要注意引语的准确性和定义。

3、注释引用:注释引用是将参考文献作为一个小标题出现在正文中,并在应该出处处加上卷期、页数或者其他必要的信息。有些参考文献可能会有多个作者,这时就需要在注释中标明作者的姓名并排列出来。

4、参考文献著录:参考文献著录是将所有的参考文献都列在一个表格中,包含了所有必要的信息。 这是最完整的一种方式,但也是最复杂的一种方式。 如果想要写好一篇参考文献相对应的文章,就必须具备较好的著录能力。

毕业论文定义

毕业论文(graduation study)是专科及以上学历教育为对本专业学生集中进行科学研究训练而要求学生在毕业前撰写的论文。一般安排在修业的最后一学年(学期)进行。

从文体而言,它也是对某一专业领域的现实问题或理论问题进行 科学研究探索的具有一定意义的论说文。一般安排在修业的最后一学年(学期)进行。学生须在教师指导下,选定课题进行研究,撰写并提交论文。目的在于培养学生的科学研究能力;加强综合运用所学知识、理论和技能解决实际问题的训练;从总体上考查学生学习所达到的学业水平。

毕业论文怎么样算引用了

引用参考文献方法如下:

一、不能抄袭

1、对于观点,需要重新总结,用自己的话适合自己文章的语言,重新在文章中描述一遍并注释。

2、对于数,需要准确地使用数据的环境、条件等等,标明来源并注释。

3、对于一些经典的话要引用原文,须在文章将原文用双引号括起来,表明是原文引用参考文献,并注明出处。文章应有自己观点和立场,每一篇论文的观点和立场应该有所不同。直接照抄其他论文中的原文,是对论文的一种马虎态度,没有深刻考虑被引论文的立场和自己论文的上下文。

二、引用来源

1、专业论文应尽量引用专业来源,优先级如下:学科较著名的开创性的论文、有影响力期刊的论文、有影响力会议的论文、学术著作、一般期刊论文、会议论文、协议的版本、法律的版本、手册的版本、经典教科书、一般指导性书籍、大众期刊、报纸、商业期刊、网站、个人博客等。

2、查找引用源应该查找一级出处。就是最开始发表这一观点的论文。该论文可能被其他论文引用,则引用论文为二级论文。只有一级出处才是最真实的表现,其他的二级出处可能掺杂其他作者的立场和观点。只有找到了一级出处才说明作者对该问题做了较深刻的研究。

3、引用来源的选择。有时都是一级出处但仍可选择。比如同时有书,论文,网站,数据库,综述等等。论文一定要引论文,论文往往是最原始的。有研究性论文就不要使用综述,综述往往是二级出处。有论文就不用书,除非书中有很大的改动。有论文和书,网站和数据库就不要考虑。

三、引文出处的排列顺序

按出现顺序排序:在文章中先出现的引用先列出处。现在一般的中文杂志都应该是按照此标准。但是,实国内学生的做法往往没有顺序,看看注释列表也没有什么顺序。这样只能说是还没有了解论文的基本写作原则,更不利于后期的论文查重。

四、出处的写法

一般的杂志会给出自己排版方法和顺序,是为方便读者能找到原文,所以一切以此原则出发。如一篇论文在一个没有出版物的学术会议上发表,那最好标注电子版本的地址,同理适用于内部研究报告。所使用的数据库,手册也应标注上版本,年代,网址方便查找,书籍应当注明页码。

文献引用应渗透到全文的不同部分

许多论文只在引言中引用参考文献,实际上论文各部分可能都涉及必要的文献引用(如果引用只出现在引言中,就显得不专业)。

1、在标题中引用文献的情况极少出现,往往是对一篇文章改错或纠错时在标题中直接引用(原文标题甚至作者)。

2、在摘要中引用的文章一般属于重要的文章。然而,摘要是可以独立阅读的文本,因此不能采用编码引用。可以采用作者、出版物简写、卷、年、起始页的格式来引用某文献,具体如何做,应看出版物指南。

3、大量的文献引用通常出现在引言中,通过引用参考文献来实现如下目的:说明你问题的来源是什么,问题为何重要;指出你面对的问题已经有了哪些工作,还有哪些空白;指出你将采用前人的哪些方法或结果;交代你的工作将推进、补充或纠正之前的哪些工作。

4、在介绍方法时,需要引用文献来说明方法的来源。即便你给出了自己的方法,也适当引用别人的方法,对比说明你的方法有何优势,或者引用别人的工作以检验你的方法的合理性。

5、对于结果的介绍,也需要引用文献来说明你得到了什么新的或者不一样的结果。在讨论结果时,需要引用文献来说明你思考问题的方式合理。如果你的论文涉及过程分析,那么还需要交代使用了谁的方法。

6、最后,在介绍结论时,可以对比文献指出你有什么重要贡献等。

总结而言,为了显得很专业,需要引用原始文献、引用亲自阅读过的文献、引用相关文献、尊重文献的本意、满足格式要求和引用规范、将文献工作逻辑地嵌入到自己内容介绍之中、将文献引用贯穿到全文各个部分。

算。论文中的引用是指文章借鉴的某些学者的观点,要在文章中进行标注,必要的情况下要进行注释解释。论文引用的的目的是为了提升文章的学术性,一般是国内外综述部分引用的观点较为多。提供文章的论文支撑。引用要求必须明确,标注无错误,否则检测时候会标红

毕业论文参考文献可以按以下方式引用:

1参考文献的借鉴是做学术的第一步骤,引用参考文献是必然的。任何思想结论成果,都离不开前人的知识经验积累,不引用参考文献那就是典型的天马行空了,不具有可研究性和学术价值,所以参考文献是必要的,没有参考文献成不了论文。参考文献引用要注意格式。

2、引用参考文献,不是抄袭别人的成果。引用是说明你的思想或者你的论文启发,出处在哪里。一般情况下,引用他人的观点,尽量用自己的语言表达出来,进行提炼总结,论点论据方面都可以,但是数字和数据推理方面尽量保持原来的模样,这个总结不了,注明原出处就好。引用文献,照抄是最不好的,一是查重过不了,二是不尊重学术的严肃性。

3、引用参考文献,可以在作者的立意上继续深挖,但是不要偏离作者的中心意思。引用还是要尊重原创作者,以事实为主体,可以有深入发展,也可以弥补原作者的不足和缺陷,但是不能扭曲事实,学术是一直在突破发展,不要曲解作者的意思。参考文献自己要熟读,才能能体会一二,要把能用到的文献和自己的上下文联系起来,真正为自己所用,才是引用的目的。

4、参考文献引用源一般是百度学术查和知网查,可以直接找到相关文献,选择引用就可以。重点是找到最初的文献来源,也就是最早的最权威的出处,引用专业来源,一般找最有权威的学术期刊、有影响力的学术著作专著,尽量不要找教材,教材的来源基本不是第一手资料了。一级出处是最开始观点出现的地方,是最原始的信息,后续其他人的引用或者变化都有后续作者自己的观点和看法,除非你是要后续作者的新观点,才会找后续的二级论文,不然尽量挖到原始论文,这个研究才算是找到了根源,才会有系统地、深入地了解。

5、引用参考文献,不是为了文章格式必须要这个而去完成任务,找文献凑上,而是根据自己的论点找文献辅助。确定一个方向,有目的地去读文献,这是我们当初写论文的时候,老师教的方法,起步是读100篇,每一篇概论出作者的意思,筛选出对自己有用的50篇,然后在里面寻找自己需要的论点和数据方法,论证方法,最后学习引到自己的论文里,最终为自己的论文补充营养,论文不是凭空创造,引用的文献可以是你的论据。

毕业论文引用错了怎么办

咨询下师兄或者导师看是否还能修改。

综述中一个引用写错结论可以改过,只要把对的写上,然后说明原因,应该不会因为参考文献拒绝你的,一般杂志社会要求你引用一点他们杂志的文献。

问:毕业论文数据前后不小心写错了外审有影响吗?答:如果主要结论没问题,影响不会很大。毕业论文那么厚,审稿人不一定注意到,即使注意到,一般会作为小错误提出来问:论文信息填错对查重结果有影响吗?答:有影响,信息只不过是方便找到你这个人而已。只要论文的内容没有变化,重复率不会有变化。但是论文有个自引,这个很多学校不算重复率的。信息填错可能这部分检测不出来。答:论文信息填错对查重结果有影响答:论文信息填错,对查重结果没有影响,查重是看内容的和网上文章内容的重复率。答:论文在查重过程中,重复率在规定的范围内是没有问题的。但一篇论文的,首先是题目和作者,这是根本性问题,如果该篇论文发表了,就表示是这个作者写的,作者的名字不同,就不能说明论文是自己写的了。因此肯定有影响。情况一:你是第一次把论文提前进行论文查重,如果是这种情况,那么就算题目和作者填错,也只会在检测报告中显示错误,没有什么影响。论文查重系统中有一项是去除本人发表的重复率,所以如果还未发表过论文或者发表的论文还未被系统收录的话,那么填写错误也不会影响重复率。情况二:把论文提交到学校论文查重后,因为学校一般都是有次数限制的,所以不管是毕业论文还是职称论文,检测报告都是具有非常重要作用的。如果这时候把题目和作者填错的话,那么会对有较大的影响。答:情况一:你是第一次把论文提前进行论文查重,如果是这种情况,那么就算题目和作者填错,也只会在检测报告中显示错误,没有什么影响。论文查重系统中有一项是去除本人发表的重复率,所以如果还未发表过论文或者发表的论文还未被系统收录的话,那么填写错误也不会影响重复率。情况二:把论文提交到学校论文查重后,因为学校一般都是有次数限制的,所以不管是毕业论文还是职称论文,检测报告都是具有非常重要作用的。如果这时候把题目和作者填错的话,那么会对有较大的影。答:如果你的论文信息填错了,那对查重的结果肯定是有影响的,往往如果填错的信息很多,那对查重结果的影响就更大答:“第一种情况:如果在学校和杂志查重前提前检测论文,如果学生论文设计题目和作者名称填错,我们教师可以从论文查重报告中看到一个问题,会显示我们的名字与论文题目不符,对论文查重结果就是没有直接影响。如果我们在之前没有发表过论文,论文查重系统会判断作者名字来查询以前有没有发表过论文,如果发表过论文,没有正确填写名字,那么我们引用的论文就会计算查重率,在论文的重复研究报告中会有一个不断重复率去除我发表的文献。如果以前没有发表过论文,即使名字填错了,也不会对重复率产生影响。答:没有影响的,查重主要查的是你的重复率。对你的错别字没有影响。问:如果参考文献格式有错,答辩会通不过吗?答:答辩很有可能会通不过,因为格式有错的话,是说明你能力不行。答:会的,因为毕业答辩还是比较严格的,如果你的参考文献格式有错肯定通过不了。答:会。论文答辩是比较严谨的,如果参考文献格式有错,答辩会通不过的,我之前就是因为这个答辩失败的。答:不会。论文是答辩的前提基础,应该办证在论文不出错的情况下,进行答辩,反应了认真负责的态度。答:我觉得不会吧,只要你自己的论文是没太大的内容上的问题,和自己答辩过程中也没有出现什么问题的话,可能会叫你回去修改,不会直接让你答辩不过的。问:论文参考文献名字写错了编辑会拒吗?答:改过啊,把对的写上,然后说明原因,应该不会因为参考文献拒绝你的,一般杂志社会要求你引用一点他们杂志的文献。答:按照编辑的要求去做,编辑审查稿件需要原文。

提交后发现错误可以申请撤回,或者在系统限定的时间内自己撤回修改。

写作指导:

(一)题名(Title,Topic)。

题名又称题目或标题。题名是以最恰当、最简明的词语反映论文中最重要的特定内容的逻辑组合。 论文题目是一篇论文给出的涉及论文范围与水平的第一个重要信息,也是必须考虑到有助于选定关键词不达意和编制题录、索引等二次文献可以提供检索的特定实用信息。

(二)作者姓名和单位(Author and department)。

这一项属于论文署名问题。署名一是为了表明文责自负,二是记录作用的劳动成果,三是便于读者与作者的联系及文献检索(作者索引)。大致分为二种情形,即:单个作者论文和多作者论文。后者按署名顺序列为第一作者、第二作者……。

(三)摘要(Abstract)。

论文一般应有摘要,有些为了国际交流,还有外文(多用英文)摘要。它是论文内容不加注释和评论的简短陈述。其他用是不阅读论文全文即能获得必要的信息。

(四)关键词(Key words)。

关键词属于主题词中的一类。主题词除关键词外,还包含有单元词、标题词的叙词。主题词是用来描述文献资料主题和给出检索文献资料的一种新型的情报检索语言词汇,正是由于它的出现和发展,才使得情报检索计算机化(计算机检索)成为可能。

相关百科

热门百科

首页
发表服务