zoukankan      html  css  js  c++  java
  • Mongoose入门

    简介

    Mongoose是MongoDB的对象模型工具。nodejs和mongodb结合的主要原因是有相同的数据存储格式JSON,在应用层使用具有非常好的连续性,无需太多的代码用来进行数据转换等工作。

    就像PHP和JAVA连接Mysql一样,nodejs连接mongodb也需要有驱动driver。mongodb的driver还是有一些的,其中最著名的就是native driver: https://github.com/mongodb/node-mongodb-native, 该项目由mongodb的创建公司10gen进行维护,它提供了一些基础的连接和数据操作的API。

    今天我们说的mongoose其实是在mongodb-native之上的一个封装,使得我们对于数据的操作是建立在模型的基础上。Mongoose有一些关键概念:

    1. Schema(模式): 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
    2. Model(模型): Schema发布生成的模型,具有抽象属性和行为的数据库操作对
    3. Entity(实体): Model创建的实体,他的操作也会影响数据库

    它们之间的关系是:Schema生成ModelModel创造EntityModelEntity都可对数据库操作造成影响,但ModelEntity更具操作性。

    基本操作

    创建连接

    var mongoose =require('mongoose');//引用mongoose模块
    mongoose.connect('mongodb://localhost/test');//连接数据库
    //或者
    var db = mongoose.createConnection('localhost','test');
    db.once('open',function(){
         //一次打开记录
    });

    定义Schema

    var userSchema = new mongoose.Schema({
      name: {
      first: String,
      last: { type: String, trim: true }
      },
      age: { type: Number, min: 0}
    });

    将Schema发布为Model

    var PUser = mongoose.model('PowerUsers', userSchema);

    使用Model创建Entity

    var johndoe = new PUser ({
      name: { first: 'John', last: '  Doe   ' },
      age: 25
    });

    保存Entity到数据库

    johndoe.save(function (err) {if (err) console.log ('Error on save!')});

    查询

    PUser.find({}).exec(function(err, result) {
      if (!err) {
        // handle result
      } else {
        // error handling
      };
    });

    查询的语法为:

    Model.find(query, fields, options, callback);

    其中 Model 为 Mongoose 模型对象。

    query参数与 MongoDB 查询条件一致。

    fields 指定查询的键。

    options 选项,有 limit, skip, populate 等。

    callback 则是回调函数,查询完毕后执行。该回调函数支持传入两个参数,分别为 err 和 result。

    更多使用方法参考官方文档: http://mongoosejs.com/docs/guide.html

  • 相关阅读:
    web前端导出csv文件
    eclipseGUI的可视化开发工具插件
    ionic2程序调试
    rxjs简单入门
    ionic2中使用自定义图标
    解决 Ionic 浏览器跨域问题
    VS2017 Cordova Ionic2 移动开发-环境搭建
    ionic环境搭建
    TypeScript学习笔记 (一)基础特性
    localStorage使用总结
  • 原文地址:https://www.cnblogs.com/cubika/p/3501887.html
Copyright © 2011-2022 走看看