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是 ... 
随机推荐
- iOS学习37数据处理之CoreData
			1. CoreData数据库框架的优势 1> CoreData历史 CoreData数据持久化框架是Cocoa API 的一部分,首次在iOS5版本的系统中出现,它允许按照实体-属性-值模型组织 ... 
- Rock-Paper-Scissors Tournament[HDU1148]
			Rock-Paper-Scissors TournamentTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ... 
- JStorm之Nimbus简介
			本文导读: ——JStorm之Nimbus简介 .简介 .系统框架与原理 .实现逻辑和代码剖析 )Nimbus启动 )Topology提交 )任务调度 )任务监控 .结束语 .参考文献 附:JStor ... 
- nginx二级域名配置到文件夹
			user root; worker_processes ; events { worker_connections ; } http { include mime.types; default_typ ... 
- 使用CSS3的appearance属性改变元素的外观
			昨天在和同事一起完成项目的时候,我使用了appearance来渲染select,但是在firefox下出现问题,不完美,最后去除了.但还是要学习下这个属性.大家都知道每个浏览器对HTML元素渲染都不一 ... 
- Leetcode Combination Sum II
			Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ... 
- Leetcode Reverse Words in a String
			Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ... 
- Codeforces Round #215 (Div. 2) B. Sereja and Suffixes
			#include <iostream> #include <vector> #include <algorithm> #include <set> us ... 
- ACM:   FZU 2148  Moon Game - 海伦公式
			FZU 2148 Moon Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ... 
- eclipse安装color theme插件
			为Eclipse添加Color.Theme的插件 这样可以方便一键更换主题,再也不用一个一个设置BackgroundColor了,同时也方便回退到default默认主题配置. 方法一: 打开Eclip ... 
