mongose链接数据库与批插入
来源:互联网 发布:linux上telnet 编辑:程序博客网 时间:2024/06/06 04:34
1.数据库链接
最近在写爬虫程序进行抓包,使用mongodb数据库的过程中遇到数据库链接的问题。
因为习惯了以前使用mysql时关闭数据库链接的习惯,不太了解Mongodb如何操作数据库链接。
加上我使用的是mongooes这个NPM模块进行数据库操作。
官方的示例是使用
var M = require('mongoose');M.connect('mongodb://admin:411411411@kahana.mongohq.com:10043/blog');
类似这样的代码段
但是例如当我在User.js 和Diary.js中都加人对应代码,就发现会报数据库链接错误。
查阅资料后,在stackoverflow发现,mogoooes对应一个数据库只要进行一次链接,对应多个数据库才需要进行多次链接
最终的解决方案是新建一个db.js,导出数据库链接,每次需要就require这个模块
var M = require('mongoose');M.connect('mongodb://admin:411411411@kahana.mongohq.com:10043/blog');// reference to the database connection 为这个连接创建一个引用var db = M.connection;// expose to modules that require database.js 把这个引用暴露给引用 database 模块的其他模块module.exports = db;2.批插入
mongodb有个批插入的功能,使用mongooes后也想实现,最后查阅文档总算成功了
这里附一个完整的Model
/** * Created by Administrator on 14-8-8. */var mongoose = require('mongoose');var db = require('./db.js');var gooditemSchema = new mongoose.Schema({ iid:String, status: String, date: String, pv: String, url : String, name :String, owner :String}, { collection: 'gooditems'});var GooditemModel = mongoose.model('Gooditem', gooditemSchema);function Gooditem(gooditem) { this.iid=gooditem.iid; this.name = gooditem.name; this.pv =gooditem.pv; this.status = gooditem.status; this.url = gooditem.url; this.date = gooditem.date; this.owner = gooditem.owner;};//保存Gooditem.prototype.save = function(callback) { var gooditem= { iid:this.iid, name:this.name, pv :this.pv, status : this.status, url : this.url, date : this.date, owner : this.owner };var Model = new GooditemModel(gooditem); Model.save(function (err, gooditem) { if (err) { return callback(err); } callback(null, gooditem); });};
//查Gooditem.get = function(iid, callback) { gooditemModel.findOne({iid: iid}, function (err, gooditem) { if (err) { return callback(err); } callback(null, gooditem); });};
//改Gooditem.update = function(iid,img,callback){ var conditions = {iid : iid}; var update = {$set : {img: img}}; var options = {upsert : true}; gooditemModel.update(conditions, update, options, function(error,data){ if(error) { console.log(error); } else { callback( 'update ok!'); } });}
//批插入Gooditem.batch = function(array,callback){ GooditemModel.create(array,function(err){ if(err){ callback('error') } else{ callback("ok") } })}module.exports = Gooditem;
0 0
- mongose链接数据库与批插入
- mongose数据库权限的设置
- jsp与mysql数据库链接,插入等操作
- JSP与数据库链接
- java链接数据库插入数据中文乱码
- hibernate与数据库的链接
- oracl链接与断开数据库
- java与数据库的链接
- QT与数据库的链接
- VC 链接Access 数据库 插入变量到表
- Java 链接Mysql 数据库时使用变量插入数据方法
- MongoDB&C++开发 (一)链接数据库并插入文档
- 中国省份与城市数据库插入
- Lotus 插入与更新SQL数据库
- kohana数据库更新与插入数据
- python 数据库查询与插入出错
- Recordset赋值与链接数据库的关系
- VC与数据库SQL的链接
- informatical lookup的使用详解
- Linux 大文件分割split与合并cat使用方法
- 关于手机设置中的RAM及内部存储空间
- 华侨大学总裁班管理分享:企业十二种最可怕的隐形成本
- Runtime(四)
- mongose链接数据库与批插入
- poj1270Following Orders(拓扑排序+dfs回溯)
- 【老李的模拟赛】【#4】【2014-08-09】
- Android实现ListView阻尼式(下拉回弹)效果
- django 环境配置
- wordpress 屏蔽国内ip访问 设置
- LFS最终幻想
- 影像质量评估之锐利度--MTF(SFR)
- C++11线程指南(6)--共享内存与互斥