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是 ...
随机推荐
- 每天一个linux命令---useradd
1.添加用户 useradd 选项 用户名 其中各选项含义如下: -c comment 指定一段注释性描述.-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录.-g ...
- 解决嵌入WinForm的WPF控件无法显示图片问题
解决办法是在控件初始化时,通过下面方法再次加载图片: ucCanvas.CreateCoordinateImage.Source = GetImageIcon(global::MainApplicat ...
- BZOJ2990 : [Ontak2010]Keyboard
考虑从$(1,1)$开始搜索移动方案,每次移动坐标的变化量都是$2$. 如果构成了环,那么环的周长肯定是偶数. 考虑这个环一定要被若干个骨牌覆盖,且还有一个位置是空的. 所以得出环的周长是奇数,矛盾, ...
- SPFA算法
SPFA算法 一.算法简介 SPFA(Shortest Path Faster Algorithm)算法是求单源最短路径的一种算法,它是Bellman-ford的队列优化,它是一种十分高效的最短路算法 ...
- URAL 1117. Hierarchy(DP)
题目链接 这破题,根本看不懂题意啊...题意:一棵中序遍历是1 2 3 4 5...的满二叉树,从a a+1 a+2 a+3 b,总共多少步.x到y的距离为中间有多少个点.a > b没注意2Y. ...
- BZOJ3653: 谈笑风生
Description 设T 为一棵有根树,我们做如下的定义:• 设a和b为T 中的两个不同节点.如果a是b的祖先,那么称“a比b不知道高明到哪里去了”.• 设a 和 b 为 T 中的两个不同节点.如 ...
- IOS 蓝牙相关-app作为外设被连接的实现(3)
再上一节说了app作为central连接peripheral的情况,这一节介绍如何使用app发布一个peripheral,给其他的central连接 还是这张图,central模式用的都是左边的类,而 ...
- 原生js获取Html元素的实际宽度高度
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第 ...
- Hive_DDL与DML
DDL(数据定义语言) create.drop.alter.truncate.show.describe DML(数据控制语言) load.insert.update.delete.import/ex ...
- iptables防火墙作为基本需求的配置
企业中使用iptables防火墙:(一般不要在命令中输入规则) # Firewall configuration written by system-config-firewall# Manual c ...