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 /更新資料
// **********************