美文网首页我爱编程
nodejs使用mongoose操作mongodb

nodejs使用mongoose操作mongodb

作者: 39cb9a87d7c5 | 来源:发表于2018-01-24 16:27 被阅读0次

    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  

    相关文章

      网友评论

        本文标题:nodejs使用mongoose操作mongodb

        本文链接:https://www.haomeiwen.com/subject/jpyuaxtx.html