mongodb import xml into mongodb
mongodb import xml into mongodb
我在将大xml文件(1.3 gb)导入mongodb以map和reduce方式搜索最常见的单词时遇到问题。
http://dumps.wikimedia.org/plwiki/20141228/plwiki-20141228-pages-articles-multistream.xml.bz2
在这里,我从这个大文件中附上xmlcut(前10 000行):
http://www.filedropper.com/text2
我知道我不能将xml直接导入mongodb。我使用了一些工具这样做。我使用了一些python脚本,但都失败了。
我应该使用哪个工具或脚本?键和值应该是什么?我认为找到最频繁的世界的最佳解决方案是这个。
(_id : id, value: word )
那么我会总结所有元素,如文档示例:
http://docs.mongodb.org/manual/core/map-reduce/
任何线索将不胜感激,但是如何将此文件导入mongodb以拥有这样的集合?
(_id : id, value: word )
如果您有任何想法,请分享。
编辑经过研究,我会使用 python 或 js 来完成这项任务。
我只会在/<page><revision>
、exlude <、> 等<text></text>
部分中提取单词,然后将单词分开并将它们使用 pymongo 或 js 上传到 mongodb。
所以有几页有修订和文字。
编辑
要保存所有这些数据,请将它们保存在 Gridfs
而最简单的方法 转换xml
,是使用此工具将其转换为json
并保存:
https://stackoverflow.com/a/10201405/861487
import xmltodict
doc = xmltodict.parse("""
... <mydocument has="an attribute">
... <and>
... <many>elements</many>
... <many>more elements</many>
... </and>
... <plus a="complex">
... element as well
... </plus>
... </mydocument>
... """)
doc['mydocument']['@has']
Out[3]: u'an attribute'
我使用的XML文件是这样的:
<labels>
<label>
<name>Bobby Nice</name>
<urls>
<url>www.examplex.com</url>
<url>www.exampley.com</url>
<url>www.examplez.com</url>
</urls>
</label>
...
</labels>
我可以使用带有mongodb
的xml-stream
导入它
请参阅:https://github.com/assistunion/xml-stream
法典:
var XmlStream = require('xml-stream');
// Pass the ReadStream object to xml-stream
var stream = fs.createReadStream('20080309_labels.xml');
var xml = new XmlStream(stream);
var i = 1;
var array = [];
xml.on('endElement: label', function(label) {
array.push(label);
db.collection('labels').update(label, label, { upsert:true }, (err, doc) => {
if(err) {
process.stdout.write(err + "'r");
} else {
process.stdout.write(`Saved ${i} entries..'r`);
i++;
}
});
});
xml.on('end', function() {
console.log('end event received, done');
});
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 如何处理node.js节点mongodb中的连接和查询队列
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 使用mongodb更新中的一个变量
- 键名中的 MongoDB 点 (.)
- 用于视频类型的MongoDB结构's
- Mongodb数千个并行运行的查询
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- 无法在Meteor/MongoDB中返回当前用户对象
- 检索MongoDB binData并显示为<img>src
- Mongodb/JS:查找最短(最早)日期
- 如何在MongoDB中将String转换为Array
- NodeJS expressJS使用multer和passport将文件上传并保存到MongoDB
- MongoDB + SQL Select equivalent
- mongodb regex parameter
- Mongodb$in以与数组中相同的顺序获取结果
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- 更新属性工作不正常Meteor/MongoDB
- 如何从多个不同的html页面获得mongodb文档的用户输入
- mongodb import xml into mongodb