一、先配置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)的更多相关文章

  1. NodeJS连接MongoDB数据库时报错

    今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb 安装成功后,通过如下 ...

  2. nodejs:注册登录session出错以及连接Mongodb数据库时Error connecting to database解决方案

    (1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore =  require(connect-mongo')改为var MongoStore =  ...

  3. NodeJS连接MongoDB数据库

    NodeJS连接MongoDB数据库 连接数据库的js文件[我将其命名为(connect.js)] // 引入mongoose第三方模块 const mongoose = require('mongo ...

  4. NodeJS连接MongoDB和mongoose

    1.MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.是世界上目前用的最广泛的nosql数据库 2.noSql 翻译过来 not o ...

  5. nodejs连接mongodb的方法

    一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...

  6. nodejs学习8:windows连接mongodb出现的错误解决办法

    今天遇到了在windows下连接mongodb错误的情况,因为之前安装是正常的,而重启的电脑之后就再也连接不上.于是在群里求助了下,无果,查阅了官网的英文文档,终于有些眉目了,故此一记. 先吐槽下命令 ...

  7. nodejs开发指南读后感

    nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...

  8. 《NodeJS开发指南》第五章微博实例开发总结

    所有文章搬运自我的个人主页:sheilasun.me <NodeJS开发指南>这本书用来NodeJS入门真是太好了,而且书的附录部分还讲到了闭包.this等JavaScript常用特性.第 ...

  9. nodejs开发解决方案

    1.2. 统一环境 开发环境 nvm nrm nodejs 0.10.38 node-inspector 部署环境 nvm nrm iojs 2.x pm2 nginx 异步流程控制:Promise是 ...

随机推荐

  1. 由case 和 break 引发的思考

    我在使用case 语句的时候,发现结果不对劲,原来我是忽略了break这个语句的添加 然后,我要反思的是,这样基本的语句,我这样的错误也能犯,证明我自己之前还没有真正掌握这个语句的使用. 所以,真正地 ...

  2. React组件

    React组件 组件是React中的基本单位,在每个组件里面又封装了程序逻辑,通过reader标出界面片段或者回传一段描述,组件再通过React.renderComponent将组件展示在浏览器中.每 ...

  3. iOS学习20之UIView

    1. UI编程概述 UI的本意是用户界面,是英文 User 和 Interface 的缩写. UI设计则是指对软件的人机交互.操作逻辑.界面美观的整体设计. 好的UI设计不仅是让软件变得有个性有品位, ...

  4. Storm DRPC实现机制分析

    DRPC是建立在Storm基本概念(Topology.Spout.Bolt.Stream等)之上的高层抽象,个人理解它的目标是在Storm 集群之上提供一种分布式的RPC框架,以便能够利用Storm快 ...

  5. No configuration found for the specified action解决办法

    http://blog.csdn.net/carefree31441/article/details/4857546 使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:fo ...

  6. Codeforces Round #215 (Div. 2) A. Sereja and Coat Rack

    #include <iostream> #include <vector> #include <algorithm> using namespace std; in ...

  7. jQuery 循环问题

    $("#add2sub").click(function(){ var $sxarr=$(".add_shuxing_ul > .sx_add_bg"); ...

  8. FMS直播流发布时 Microphone Speex 编码设置注意事项

    1.为何要用 Speex?FP的默认音频编码是 NellyMoser,而FP10之后加入了 Speex.实际应用中,用默认的 NellyMoser 编码音频,会有个很大的问题,就是无法控制流码率浮动. ...

  9. Maven dependency spring-web vs spring-webmvc

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmv ...

  10. HashMap封装的数据用循环快速添加进list中产生的数据集全部相同的问题

    一.问题概述 在一次使用SimpleAdapter时,Data需要使用传入一条数据(Image.Text),该数据条使用HashMap封装.在用HashMap封装的数据用循环快速添加进list中产生了 ...