nodejs中使用mongodb

来源:互联网 发布:ubuntu terminal 分屏 编辑:程序博客网 时间:2024/05/16 17:12

MongoDB 拥有 NoSQL 的普遍特色,不用预先定义 Schema,所有的 database 和 collection(相当于传统 RDBMS 的 Table),都会在新增数据后,自动被建立,我们只要专注于使用 NodeJS 操作数据库即可。

1、首先要在项目中安装mongodb,安装命令是:

npm install mongodb

2、server.js

/** * Created by Administrator on 2016/7/16. */var  mongodb = require('mongodb');var  server  = new mongodb.Server('localhost', 27017, {auto_reconnect:true});//服务器与mongodb相连var  db = new mongodb.Db('mydb', server, {safe:true});//在mongodb中创建数据库mydb//连接dbdb.open(function(err, db){    if(!err){        console.log('connect db');        // 连接Collection(可以认为是mysql的table)        // 第1种连接方式        // db.collection('mycoll',{safe:true}, function(err, collection){        //     if(err){        //         console.log(err);        //     }        // });        // 第2种连接方式        db.createCollection('mycoll', {safe:true}, function(err, collection){            if(err){                console.log(err);            }else{                //新增数据                // var tmp1 = {id:'1',title:'hello',number:1};                //          collection.insert(tmp1,{safe:true},function(err, result){                //              console.log(result);                //          });                //更新数据                // collection.update({title:'hello'}, {$set:{number:3}}, {safe:true}, function(err, result){                //     console.log(result);                // });                // 删除数据                // collection.remove({title:'hello'},{safe:true},function(err,result){                //                   console.log(result);                //               });                // console.log(collection);                // 查询数据                var tmp1 = {title:'hello'};                var tmp2 = {title:'world'};                collection.insert([tmp1,tmp2],{safe:true},function(err,result){                    console.log(result);                });                collection.find().toArray(function(err,docs){                    console.log('find');                    console.log(docs);                });                collection.findOne(function(err,doc){                    console.log('findOne');                    console.log(doc);                });            }        });        // console.log('delete ...');        // //删除Collection        // db.dropCollection('mycoll',{safe:true},function(err,result){        //           if(err){        //         console.log('err:');        //         console.log(err);        //     }else{        //         console.log('ok:');        //         console.log(result);        //     }        //       });    }else{        console.log(err);    }});

node server.js之后显示:
这里写图片描述


其实操作mongodb最好用mongoose:
参考;http://www.cnblogs.com/aaronjs/p/4489354.html
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用。

使用mongoose操作mongodb一般流程(保存数据):
1、引入mongoose:

var mongoose=require("mongoose");

2、通过Schema创建一个模式
3、通过模式创建一个模型
4、通过模型写入数据
5、通过save方法保存
例子:

var Schema = mongoose.Schema;//骨架模版var movieSchema = new Schema({    doctor   : String,    title    : String,    language : String,    country  : String,    year     : Number,    summary  : String,    poster   : String,    flash    : String})//模型var Movie = mongoose.model('Movie', movieSchema);//存储数据var moive = new Movie({    title: '黑衣人三',    doctor: '史密斯',    year: 2018,    flash: 'http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf',    country: '美国',    language: '英语',    summary: '好片'})//保存数据库moive.save(function(err) {    if (err) {        console.log('保存失败')        return;    }    console.log('meow');});

**注意的一点:**schema模式和模型不能同名,否则会失败

2、更新、删除数据见参考

0 0