文档章节

nodejs加载xml数据并且保存到mongodb中

雷伟波
 雷伟波
发布于 2015/04/17 00:57
字数 297
阅读 37
收藏 0

项目中需要初始化中国所有省份的信息到mongo db中,在网上找到 省份数据数据是xml格式的,所以大致思路是

  1. 从xml中读取数据,存入对应的model的数据中
  2. 调用model对应的save方法
var fs = require('fs');
fs.readFile('Provinces.xml', function(err, data) {
    ....
});

以上代码就是先从文件流通过字符串的形式读入,然后通过libxmljs去解析,得到数据之后,存入到province这个对象里面:

var xmlDoc = libxmljs.parseXmlString(data);
    var provinces = xmlDoc.find("//Province");

    var length = provinces.length;
    var provinceList = [];
    for(var i = 0; i < length; i++) {
      var province = new Province();
      province.id = provinces[i].attr('ID').value();
      province.name = provinces[i].attr('ProvinceName').value();
      provinceList.push({id: provinces[i].attr('ID').value(), name: provinces[i].attr('ProvinceName').value()});
    }

这一步犯了一个很大的错误,我以为push的时候,传入一个provicen对象即可,但这样是不对的,需要传入一个json格式的数组,才能正确存入到mongodb里面

然后通过mongoose去打开mongo的数据库连接:

var mongoose = require('mongoose');

    mongoose.set('debug', true);
    mongoose.connect(mongoose_url);
    mongoose.connection.on('error', function () {
      console.log('Mongoose connection error', arguments);
    });
    mongoose.connection.once('open', function callback() {
      Province.collection.insert(provinceList, function(err, docs) {
        if (err) {
          console.log('error:' +err.message);
        } else {
          console.info('%d potatoes were successfully stored.', docs.length);
        }
      })
    });

© 著作权归作者所有

共有 人打赏支持
雷伟波
粉丝 1
博文 4
码字总数 2113
作品 0
杭州
私信 提问
Node.js和Geddy初学者指南 - 第三部分:使用Mongdb持久化你的数据

日期:2012-4-12 来源:GBin1.com 在这个三个部分的教程中,我们教大家使用Node.js和Geddy来创建了一个todo的管理应用,上一篇我们将数据保存在内存中,在这个系列最后一篇文章中,我们将介绍...

gbin1
2012/04/13
0
0
JS服务端系列-nodejs+express+ejs+mongodb的数据显示

1.我们下载好mongodb数据库,这个程序我放在nodejs的目录下了, 我的nodejs是安装在d: nodejs目录下,看图可以看到我的存放位置,这个随便放置 2.打开cmd窗口,转到mongodb的bin目录下, 执行...

透笔度
2015/08/05
0
0
nodejs开发——mongodb数据库入门

版权声明:本文为博主原创文章,欢迎分享到其它技术社区,分享请标明出处: https://blog.csdn.net/CHENYUFENG1991/article/details/54835771 当你还在为开发Nodejs使用哪种数据库而犹豫时,...

乞力马扎罗的雪CYF
2017/02/02
0
0
利用node.js和mongodb为你的app写一个web服务

在当今这个协作和社交应用的世界里,其关键是要有一个能简单构建和易于部署的后台。许多组织机构都依赖于一个应用栈(Application Stack),其使用下面三项技术: 这个栈对于移动应用来说相当...

人生天地间
2014/04/28
0
0
Node.js进阶教程第六步:MongoDB-何韬-专题视频课程

Node.js进阶教程第六步:MongoDB—4067人已学习 课程介绍 本课程讲述了MongoDB的安装配置和使用,操作数据库,操作数据集,数据类型和嵌套关联,数据的增删查改,聚合,索引,存储过程,备份还原...

pkutao
2017/01/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day27:expect批量杀进程|

1、linux下当前目录有一个文件ip-pwd.ini,内容如下: [root@localhost_002 shell100]# cat ip-pwd.ini 10.111.11.1,root,xyxyxy10.111.11.2,root,xzxzxz10.111.11.3,root,12345610.......

芬野de博客
44分钟前
2
0
分布式之数据库和缓存双写一致性方案解析(二)

引言 该文是对《分布式之数据库和缓存双写一致性方案解析》,一文的补充。博主在该文中,提到了这么一句话 应该没人问我,为什么没有先更新缓存,再更新数据库这种策略。 博主当时觉得,这种...

hensemlee
50分钟前
3
0
druid安装与案例

druid 可以运行在单机环境下,也可以运行在集群环境下。简单起见,我们先从单机环境着手学习。 环境要求 java7 或者更高版本 linux, macOS或者其他unix系统(不支持windows系统) 8G内存 2核C...

hblt-j
55分钟前
0
0
bejson上线 gif转帧工具。

说道这个工具,不得不提一句经典格言“色Q是推动科技发展的动力” 有人发了这个图,我和所有人一样想看到那个瞬间。 当然,我没有PS,有没有太好的转帧工具,但是这并不妨碍我是一个技术死肥...

废柴大叔
56分钟前
0
0
详解利用clear清除浮动的一些问题解决

下面这段代码是用来清除浮动带来的高度塌陷问题 .clearfix:before { content: "."; display: block; height: 0; clear: both; visibility: hidden;} Quest......

前端小攻略
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部