Mongoose-学习笔记

定义模式 Schema -> 定义模型 model -> 定义实例 -> 增查删改这个实例

在模式中可以直接定义一些方法,使得使用模型生成的实例都继承了这些方法,可直接调用。

  • 快速开始

      var mongoose = require('mongoose');
    
      // 【模式】
      var UserSchema = mongoose.Schema({
        name: String,
        age: Number
      })
    
      // 【方法】在模式中添加一个方法,则生成的实例中将可以直接调用这个方法
      UserSchema.methods.say = function () {
        var name = this.name;
        if (name) {
          console.log('我的名字是:', name);
        } else {
          console.log('我还没有名字');
        }
      };
    
      // 【模型】使用模式定义一个模型
      var User = mongoose.model('User', UserSchema);
    
      // 【实例】使用模型定义一个实例
      var newUser = new User({
        name: '小赖',
        age: 18  // 我年年十八
      })
      // 【实例】使用模型定义一个实例
      var r = parseInt(Math.random() * 10 + 20);
      var newUserRandom = new User({
        name: '用户'+r,
        age: r  //
      })
      // 实例中调用模式中定义好的方法
      newUser.say(); // => '我的名字是:小赖'
      newUserRandom.say();
    
      // 【增】将实例保存到数据库
      newUser.save(function (err, newUser) {
        if (err) throw err;
        console.log('【增】保存数据成功, 成功保存的数据是:\n', newUser);
      });
      // 【增】将实例保存到数据库
      newUserRandom.save(function (err, newUser) {
        if (err) throw err;
        console.log('【增】保存数据成功, 成功保存的数据是:\n', newUserRandom);
      });
    
      // 【查】查询所有文档
      User.find(function (err, users) {
        if (err) throw err;
        console.log('【查】当前数据库的所有用户是:\n', users);
      });
      // 【查】限定条件查询
      User.find({age: 20}, function (err, users) {
        if (err) throw err;
        console.log('查询到年龄为20的用户有:\n', users);
      })
    
      // 连接数据库
      mongoose.connect('mongodb://localhost/test');
    
      // 获取连接
      var db = mongoose.connection;
    
      // 连接错误
      db.on('error', function (err) {
        console.log('连接失败:', err);
      });
    
      // 连接成功
      db.on('open', function () {
        console.log('连接成功!');
      })
    

阅读全文

MongoDB-学习笔记

MongoDB 支持的几钟数据类型

  • String

      // 字符串
      var mySite = 'laispace.com';            
    
  • Array

      // 数组
      var myFriends = ['小赖', '小清', '大花', '大黄'];
    
  • Boolean

      // 布尔类型,truefalse         
      var IloveU = true;
    
  • Code

      // 代码,可在数据库内运行
      var myCode = new BSON.Code('function (name) {
          return 'My name is ' + name;
      }');
    
  • Date

      // 日期
      var myDate = new Date();
    
  • Integer

      // 整数
      var myAge = 18; // 让我年轻一次嘛~
    
  • Long

      // 长整数
      var myMoney = new BSON.Long('999999999999999999999');
    
  • Hash

      // 数据字典
      var myInfo = {
          name: '小赖',
          age: '18,
          sex: 'male'
      };
    
  • Null

      // null 值
      var myBadFriend = null;
    
  • ObjectId

      // 索引ID,12字节,24位16进制串,用于唯一标识
      var myId = new BSON.ObjectId()
    
  • DBRef

      // 数据库引用
      var bestFriendId = new BSON.DBRef('users', friendObjectId);
    

阅读全文