MongoDB 是一个流行的开源、分布式文档数据库,以其灵活性和高性能而受到广大开发者的青睐。在本文中,我们将探讨如何利用 JavaScript 和 MongoDB 来构建一个名为 "wikistack" 的项目,该项目旨在存储版本化的 wiki 页面,类似于维基百科的一个克隆。 1. **文档数据库与 MongoDB** - MongoDB 是 NoSQL 数据库的一种,它使用键值对、文档、集合和分片集群等数据模型,而非传统的关系型数据库中的表格和行。 - 文档数据库非常适合存储结构灵活的数据,如 JSON、BSON(二进制 JSON)格式,这使得 MongoDB 对于处理类似 wiki 页面这样结构多变的数据非常合适。 2. **JavaScript 与 MongoDB** - MongoDB 提供了官方的 JavaScript 驱动程序,允许开发者直接在服务器端或客户端用 JavaScript 与数据库交互。 - Node.js,一个基于 Chrome V8 引擎的 JavaScript 运行时,可以用来构建wikistack这样的服务端应用,实现对 MongoDB 的高效访问。 3. **版本控制** - 在 wikistack 中,每个 wiki 页面都有多个版本,这需要实现版本控制机制。版本控制允许用户回溯到页面的旧版本,查看历史更改,并比较不同版本之间的差异。 - MongoDB 的文档更新通常会导致旧版本被覆盖,因此,我们需要设计一种策略来存储和检索多个版本的页面,例如通过在文档内嵌套版本信息,或者创建单独的版本集合。 4. **数据模型设计** - 页面模型:每个页面作为一个文档,包含页面标题、内容、创建日期、作者等基本信息,以及一个包含多个版本的数组。 - 版本模型:每个版本作为一个子文档,记录内容变化、修改日期、修改者等信息。 5. **查询与更新操作** - 使用 MongoDB 的查询语法,可以轻松获取特定版本的页面或列出所有版本。 - 更新操作需要确保既保留旧版本,又能添加新版本,这可能涉及到原子操作,例如 `updateOne` 方法配合 `$push` 或 `$set` 操作符。 6. **安全性与权限管理** - 为了保护数据,需要实现用户认证和授权系统,限制用户对页面的访问和编辑权限。 - MongoDB 提供了内置的角色和权限管理,可以在数据库、集合或单个文档级别设置访问控制。 7. **性能优化** - 分片技术可用于在多台服务器上分布数据,提高读写性能和可扩展性。 - 使用索引来加速查询,尤其是对于频繁的查询操作,如按页面标题查找或按时间排序版本。 8. **备份与恢复** - 定期备份 MongoDB 数据是必要的,可以使用 MongoDB 的工具进行完整或增量备份,并在需要时进行恢复。 - 考虑到wikistack涉及版本化数据,恢复策略需要确保所有版本都能准确无误地恢复。 通过以上步骤,我们可以构建出一个功能完备、版本化的 wiki 系统,利用 MongoDB 的强大功能存储和管理大量的 wiki 页面。JavaScript 的易用性和 MongoDB 的灵活性使得这一过程变得更加简单和高效。
2024-09-26 21:01:29 3.64MB JavaScript
1
利用wikipedia语料训练word2vec代码,中英文都可,语料自行下载
2022-11-16 00:13:59 5KB word2vec
1
“将阿拉伯语维基百科转换成命名实体分类法”是一个数据集,由4000条阿拉伯语维基百科文章分类为粗粒度NE分类法。 该数据集可用于与NER相关的文档分类任务。 要使用该语料库,请引用以下出版物:F. Alotaibi和M. Lee,“将阿拉伯维基百科映射到命名的实体分类法中”,《 COLING 2012年会议录:海报》,第43-52页,印度理工学院,印度孟买,12月8日。 -15。 2012年。作者URL:http://www.cs.bham.ac.uk/~fsa081/index.html http://fsalotaibi.kau.edu.sa电子邮件:fsalotaibi {AT} kau.edu.sa fsa081 {AT } cs.bham.ac.uk
2022-07-18 10:07:38 11.55MB 开源软件
1
英国邮政编码多边形 来自Wikipedia的KML和GeoJSON格式的英国邮政编码区域和区域多边形的转储 邮政编码区域? 地区? 请参阅《理想邮政编码》中的此。 这是什么? 从页面链接的KML文件的导出,也已转换为GeoJSON。 注意:每个GeoJSON文件代表一个邮政编码区域,并包含一个FeatureCollection ,每个组成邮政编码区域都具有一个Feature 。 例如: : 依存关系 从Wikipedia更新GeoJSON和KML文件需要togeojson和geojson-rewind ... sudo npm install -g @mapbox/togeojson sudo npm install -g @mapbox/geojson-rewind 或者 ... sudo yarn global add @mapbox/togeojson sudo ya
2022-06-09 10:48:34 4.01MB Shell
1
WikiExtractor 是一个Python脚本,可从中提取和清除文本。 该工具是用Python编写的,不需要Python 3,但没有其他库。 警告:由于Windows上的Python实现对StringIO支持不佳, StringIO在Windows上已报告问题。 有关更多信息,请参见 。 维基百科卷云提取器 cirrus-extractor.py是从Wikipedia Cirrus转储执行提取的脚本版本。 Cirrus转储包含带有已扩展模板的文本。 Cirrus转储位于: 。 细节 WikiExtractor通过预处理整个转储并提取模板定义来执行模板扩展。 为了加快处理速度: 多重处理用于并行处理文章 缓存中保留有已解析的模板(仅适用于重复提取)。 安装 该脚本可以直接调用: python -m wikiextractor.WikiExtractor <Wikipedi
2022-05-14 20:09:44 47KB Python
1
Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。 npm test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 npm run build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 eject ,您将无法返回! 如果您对构建工具和配置选择不满意,则可以随时eject 。 此命令将从您的项目中删除单个生成依赖项。 相反,它将所有配置文件和传递性依赖项(w
2022-05-14 15:46:24 173KB JavaScript
1
wiki:设计类似Wikipedia的在线百科全书
2022-04-06 10:45:19 26KB Python
1
适用于Windows,Linux和MacOS的Voice Assistant Python应用程序 Возможностиприложения 使用Python 3和Windows以及Linux的Данныйпроектголосовогоассистента: 离线(распознаватьисинтезироватьречь)(бездоступакИнтернету); сообщатьопрогнозепогодывлюбойточкемира; производитьпоисковыйзапросвпоисковойсистемеGoogle YouTube上的производитьпоисковыйзапросвидеоиоткрыватьсписокрезультатовданногозапроса; Wikipedia cвыполнятьпоископределения; Wikipedia cдальнейшимпрочтениемпервыхдвухпредложений переводитьсизучаемогоязыканароднойязыкп
2021-12-23 17:53:04 22KB python macos linux youtube
1
作者: Ivan Bongiorni ,数据科学家。 卷积递归Seq2seq GAN用于时间序列数据中缺失值的插补 描述 该项目的目标是为时间序列数据的插补实现递归卷积Seq2seq神经网络的多种配置。 提供了三种实现: 循环卷积seq2seq模型。 基于上述相同体系结构的GAN (生成对抗网络),其中训练了Imputer来欺骗试图区分真实和假(推算)时间序列的对抗网络。 一种部分对抗的模型,其中先前模型的两种损失结构都组合在一个模型中:Imputer模型必须减少真实的错误损失,同时尝试欺骗鉴别器。 模型在TensorFlow 2中实现,并在数据集中进行了训练。 档案文件 config.yaml :用于数据预处理,培训和测试的配置参数。 管道: main_processing.py :启动数据预处理管道。 其结果是将准备好训练的数据集以.npy( numpy )格式保存在/da
2021-12-19 16:26:05 3.01MB python machine-learning tensorflow cnn
1
Wiki上的叉乘介绍
2021-11-25 15:02:24 435KB wikipedia CrossEntropy
1