1. 程式人生 > >node中mongoose使用CRUD示例

node中mongoose使用CRUD示例

var mongoose = require('mongoose')

var Schema = mongoose.Schema

// 1. 連線資料庫
// 指定連線的資料庫不需要存在,當你插入第一條資料之後就會自動被創建出來
mongoose.connect('mongodb://localhost/itcast')

// 2. 設計文件結構(表結構)
// 欄位名稱就是表結構中的屬性名稱
// 約束的目的是為了保證資料的完整性,不要有髒資料
var userSchema = new Schema({
  username: {
    type: String,
    required: true // 必須有
  },
  password: {
    type: String,
    required: true
  },
  email: {
    type: String
  }
})

// 3. 將文件結構釋出為模型
//    mongoose.model 方法就是用來將一個架構釋出為 model
//    第一個引數:傳入一個大寫名詞單數字符串用來表示你的資料庫名稱
//                 mongoose 會自動將大寫名詞的字串生成 小寫複數 的集合名稱
//                 例如這裡的 User 最終會變為 users 集合名稱
//    第二個引數:架構 Schema
//   
//    返回值:模型建構函式
var User = mongoose.model('User', userSchema)


// 4. 當我們有了模型建構函式之後,就可以使用這個建構函式對 users 集合中的資料為所欲為了(增刪改查)
// **********************
// #region /新增資料
// **********************
// var admin = new User({
//   username: 'zs',
//   password: '123456',
//   email: '[email protected]'
// })

// admin.save(function (err, ret) {
//   if (err) {
//     console.log('儲存失敗')
//   } else {
//     console.log('儲存成功')
//     console.log(ret)
//   }
// })
// **********************
// #endregion /新增資料
// **********************

 


// **********************
// #region /查詢資料
// **********************
// User.find(function (err, ret) {
//   if (err) {
//     console.log('查詢失敗')
//   } else {
//     console.log(ret)
//   }
// })

// 使用者註冊
// 1. 判斷使用者是否存在
//    如果已存在,結束註冊
//    如果不存在,註冊(儲存一條使用者資訊)
User.find()
  .then(function (data) {
    console.log(data)
  })

// User.findOne({ username: 'aaa' }, function (user) {
//   if (user) {
//     console.log('已存在')
//   } else {
//     new User({
//       username: 'aaa',
//       password: '123',
//       email: 'dsadas'
//     }).save(function () {
      
//     })
//   }
// })

// User.findOne({
//     username: 'aaa'
//   })
//   .then(function (user) {
//     if (user) {
//       // 使用者已存在,不能註冊
//       console.log('使用者已存在')
//     } else {
//       // 使用者不存在,可以註冊
//       return new User({
//         username: 'aaa',
//         password: '123',
//         email: 'dsadas'
//       }).save()
//     }
//   })
//   .then(function (ret) {
//   })

// User.find({
//   username: 'zs'
// }, function (err, ret) {
//   if (err) {
//     console.log('查詢失敗')
//   } else {
//     console.log(ret)
//   }
// })

// User.findOne({
//   username: 'zs'
// }, function (err, ret) {
//   if (err) {
//     console.log('查詢失敗')
//   } else {
//     console.log(ret)
//   }
// })
// **********************
// #endregion /查詢資料
// **********************

 

// **********************
// #region /刪除資料
// **********************
// User.remove({
//   username: 'zs'
// }, function (err, ret) {
//   if (err) {
//     console.log('刪除失敗')
//   } else {
//     console.log('刪除成功')
//     console.log(ret)
//   }
// })
// **********************
// #endregion /刪除資料
// **********************


// **********************
// #region /更新資料
// **********************
// User.findByIdAndUpdate('5a001b23d219eb00c8581184', {
//   password: '123'
// }, function (err, ret) {
//   if (err) {
//     console.log('更新失敗')
//   } else {
//     console.log('更新成功')
//   }
// })
// **********************
// #endregion /更新資料
// **********************