我爱编程

nodejs使用mongoose操作mongodb

2018-01-24  本文已影响0人  39cb9a87d7c5

1:进入官网下载mongodb驱动 https://www.mongodb.com/download-center?jmp=nav#community

2:选择使用mongodb的gui开发工具,官方的是compass

mongodb属于非关系型数据结构,关于mongodb操作collection数据集合,请自行百度学习

3:在你的nodejs项目里面,项目里不要使用npm安装mongodb模块,npm中mongodb版本太低,如果你pc装的mongodb版本在3以上,就会有许多方法不适用,建议在nodejs项目里使用mongoose模块操作mongodb数据库

mongoose具体操作请参考:https://www.npmjs.com/package/mongoose

4:以下为我自己写的demo部分代码:

const mongoose = require('mongoose');//引入

const db = mongoose.createConnection('mongodb://localhost:27017/local');//连接mongodb数据库(URL为:mongodb://地址:数据库端口/库名)

/**

以下为db状态的监听

**/

db.on("error",function(err) {

    console.log('err is'+err);

});

db.on("open",function() {

    mongodb.mongoFind('炎');在监听打开时间进行操作

    console.log('连接成功');

});

db.on('disconnected', function () {   

    console.log('Mongoose connection disconnected'); 

}); 

创建 Schema, let PersonSchema = new mongoose.Schema({字段}{表名}),schema是个规范,俩参数跟db字段对应,

let PersonSchema = new mongoose.Schema({

            name : { type:String },

            home : { type:String },

            age  : { type:Number, default:0 },

            time : { type:Date, default:Date.now },

            email: { type:String,default:''}

        },{collection:'person'});  //collection参数不写,会导致数据库表名错 误

        var PersonModel = db.model("person", PersonSchema);//连接表

以上意思为,为person库设置一个模式,person为表名与schema表名保持一致

        var personEntity = new PersonModel({

            name : "siry",

            home:'Amr',

            age  : 26,

            time:Date.now(),

            email: "xzl@qq.com"

        });//创建表的实例

        mongoose.Promise = global.Promise;//mongoose执行异步操作的相关方法时要加这句,不加会警告,原因是mongoose使用了es6的promise

        let promise = personEntity.save();//save保存数据后,返回promise实例

        promise.then(function(doc) {//接收结果

            console.log(doc);//处理结果

        });

5:查询操作

db.on('open',function() {

          let schema = mongoose.Schema({},{collection:'fs.files'});//查询时第一个参数可为空,第二个参数一定要写,不谢导致表名错误

          let model = db.model('fs.files',schema);

          mongoose.Promise = global.Promise;

          model.find({},{'filename':1,'length':1}).limit(10).exec(function(err,doc) {

              let jsonstr = JSON.stringify(doc);

                // app7.groceryList = JSON.parse(jsonstr);

          });

      })

对日期进行查询时,在mongodb的客户端使用ISOdate操作日期,在mongoose中使用new Date('timeString')来传入日期字符串的

以上介绍均为mongodb3.6以上版本,本地安装mongodb时选择3以上版本,npm 安装mongoose时,不用选择版本直接 npm install mongoose

选择版本的话就:npm install mongoose@版本号     使用:npm view mongoose  versions 查看具体的版本号

更多mongodb的操作参考:http://www.mongoing.com/docs/crud.html  

上一篇下一篇

猜你喜欢

热点阅读