Nodejs开发(2.连接MongoDB)
一、先配置MongoDB
Win10下下载那个安装版,zip版的会报却各种DLL,安装在你希望的路径,实在安装错了,就剪切过来也行(本例E:\mongodb)。
然后是配置启动脚本,就是写一个bat文件,双击即可打开,因为那启动命令实在有点长。
在E:\mongodb\bin下创建一个start.bat文件,写入:
cd E:\mongodb\bin
mongod --dbpath=../data --directoryperdb --logpath=../log.log --logappend
注意要创建好data目录

二、使用Nodejs连接MongoDB
在任意地方都可以写代码,比如我在D盘创建了一个Nodejs文件夹,以后的js文件全部放到里面,
按住shift邮件选择打开命令行,先安装express:(其实这个可以不安装)
npm install express
再安装MongoDB组建:
npm install mongodb
然后打开Sublime Text 3,在刚才的目录下创建一个js文件,并编写代码如下:
var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('mydb', server, {safe:true});
//连接db
db.open(function(err, db){
if(!err){
console.log('connect db');
db.collection('users', {safe:true}, function(err, collection){
if(err){
console.log(err);
}else{
var whereStr={"name":"lisi"};
collection.find(whereStr).toArray(function(err,docs){
console.log('find');
console.log(docs);
});
collection.findOne(function(err,doc){
console.log('findOne');
console.log(doc);
});
}
});
}else{
console.log(err);
}
});
这段代码应该没有什么难以理解的地方。
先给数据库里面插入两条数据:
新建表:db.createCollection('要新建的表名');
db.表名.insert(数据);
查询表中所有数据:db.表名.find();
然后在编辑器中执行control+b即可看到结果:

我给库里插了两条数据:

完整增删改查代码如下:
var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('mydb', server, {safe:true});
function search(){
db.open(function(err, db){
if(!err){
//console.log(db);
console.log('connect db');
db.collection('users', {safe:true}, function(err, collection){
if(err){
console.log(err);
}else{
var whereStr={"name":"lisi"};
collection.find(whereStr).toArray(function(err,docs){
console.log('find');
console.log(docs);
});
collection.findOne(function(err,doc){
console.log('findOne');
console.log(doc);
});
collection.find().toArray(function(err,doc){
console.log('findAll');
console.log(doc);
});
}
});
}else{
console.log(err);
}
});
}
function change(){
db.open(function(err, db){
if(!err){
//console.log(db);
console.log('connect db');
db.collection('users', {safe:true}, function(err, collection){
if(err){
console.log(err);
}else{
//var tmp1 = {name:'wangwu',age:13,number:1};
//collection.insert(tmp1,{safe:true},function(err, result){
//console.log(result);
//});
//更新数据
collection.update({name:'zhangsan'}, {$set:{age:4}}, {safe:true}, function(err, result){
console.log("update data");
console.log(result);
});
// 删除数据
// collection.remove({name:'zhangsan'},{safe:true},function(err,result){
//console.log(result);
//});
}
});
}else{
console.log(err);
}
});
}
search();
change();
search();
Nodejs开发(2.连接MongoDB)的更多相关文章
- NodeJS连接MongoDB数据库时报错
今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb 安装成功后,通过如下 ...
- nodejs:注册登录session出错以及连接Mongodb数据库时Error connecting to database解决方案
(1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore = require(connect-mongo')改为var MongoStore = ...
- NodeJS连接MongoDB数据库
NodeJS连接MongoDB数据库 连接数据库的js文件[我将其命名为(connect.js)] // 引入mongoose第三方模块 const mongoose = require('mongo ...
- NodeJS连接MongoDB和mongoose
1.MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.是世界上目前用的最广泛的nosql数据库 2.noSql 翻译过来 not o ...
- nodejs连接mongodb的方法
一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...
- nodejs学习8:windows连接mongodb出现的错误解决办法
今天遇到了在windows下连接mongodb错误的情况,因为之前安装是正常的,而重启的电脑之后就再也连接不上.于是在群里求助了下,无果,查阅了官网的英文文档,终于有些眉目了,故此一记. 先吐槽下命令 ...
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- 《NodeJS开发指南》第五章微博实例开发总结
所有文章搬运自我的个人主页:sheilasun.me <NodeJS开发指南>这本书用来NodeJS入门真是太好了,而且书的附录部分还讲到了闭包.this等JavaScript常用特性.第 ...
- nodejs开发解决方案
1.2. 统一环境 开发环境 nvm nrm nodejs 0.10.38 node-inspector 部署环境 nvm nrm iojs 2.x pm2 nginx 异步流程控制:Promise是 ...
随机推荐
- 被解放的GPU CSS3动画加速
概念 图形处理器( Graphics Processing Unit ) 专门用来处理在个人电脑.工作站或游戏机上图像运算工作 显卡的“心脏” 90%以上的新型台式电脑和笔记本型电脑拥有集成图形处理器 ...
- Android Immersive Mode (沉浸模式) 还是 Translucent Bars (透明状态栏)
Immersive Mode (沉浸模式) 还是 Translucent Bars (透明状态栏) [科普]什么叫真正的“沉浸式”状态栏? 为什么在国内会有很多用户把「透明栏」(Translucent ...
- 当编译CCBReader时出现 “ CCBAnimationManager.m Use of undeclared identifier 'other‘ ” 解决方法
第一种解决方法是去github上下载最新的CCBReader 第二种解决方法是把other替换成self.inner 建议用新版本的
- 51Nod 1079 中国剩余定理 Label:数论
一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23. Input 第1行:1个数 ...
- 让 Web 站点崩溃最常见的七大原因
磁盘已满 导致系统无法正常运行的最可能的原因是磁盘已满.一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带). 日志文件会很快用光所有 ...
- [Codeforces] Round #320 (Div.2)
1.前言 虽然这次我依旧没有参加正式比赛,但是事后还是看了看题目的...一般不怎么刷Codeforces. A.Raising Bacteria You are a lover of bacteria ...
- [题解+总结]NOIP2015模拟题2
// 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html 1.总 ...
- 用存储过程 将大段的SQL藏起来
在日常工作中,当面对比较复杂的数据库操作时不免要写一些比较长的SQL,由于某系SQL有些长(目前我写的最长的貌似有30多行吧),这时候长会面临这个 方法 优点 缺点 用"+"串 ...
- wamp环境下安装memcached最好的详解教程^.^:(只需要3个步骤 )
win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部分讲解有图,我就是看4-5个讲解,结合有一篇的截图最终才搞定的 ...
- POI2012 (持续更新中)
Distance Well Vouchers Cloakroom A Horrible Poem Rendezvous Fibonacci Representation Squarks Salarie ...