收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > JavaScript > nodejs > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

mongoose設置unique不生效問題的解決及如何移除unique的限制

前言

unique屬于schema約束驗證中的一員,他的作用主要就是讓某一個字段的值具有唯一性(不能重復)

保持字段的唯一性使用type值: {type:String,unique:true,dropDups: true}

注意:mongoose一旦修改了數據存儲的機構,數據庫一定要重啟,很多新手在設置一些屬性不生效時都是這個原因

這里說的重啟,不是簡單的關閉mongoose數據庫服務器重新打開,而是先將該數據庫整個刪除,然后再重啟數據庫服務

簡單的schema特殊用法示例

//導入模塊

var mongoose = require('mongoose');

//連接數據庫
mongoose.connect('mongodb://localhost/itheima');

//創建schema

//schema第一個參數是我們自定義的數據類型 第二個參數是管理schema默認的數據類型
var studentSchema = mongoose.Schema({
 name:{type:String,required:true},//數據類型為string,不能非空
 age:{type:Number,default:18},//數據類型為string,默認值18
 study_id:{type:Number,select:true},//學號,默認查詢字段
 address:{type:String,lowercase:true},//地址,默認小寫
 email:{type:String,match:RegExp(/^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/)},//郵箱,正則表達式驗證
 phone:{type:String,unique:true,dropDups: true}//電話號碼唯一性
},{
  versionKey: false,//去掉版本鎖 __v0

 timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' }//自動管理修改時間

});

//創建model

var student = mongoose.model('student',studentSchema);

//創建Entity

var zhangsan = new student({
 name:'zhangsan',//名字必須要有,否則會報錯: name: Path `name` is required.
 address:'ZhongLiang',//字符串都會變成小寫
 email:'[email protected]',//郵箱格式不對,添加會報錯 Path `email` is invalid (a12345qq.com).
 study_id:2017001,
 phone:'123456789'//在添加唯一性字段時,mongoose會先查詢數據庫所有的phone值,一旦發現該值已存在則會報錯
});

//添加數據



student.create(zhangsan,function(err){

 if(err){
  throw err;
 }

 console.log('插入成功' + zhangsan);

});

Mongoose 移除unique的限制

程序中email最開始設置了unque限制,導致email在此collection中無法重復插入,現在想要移除unique限制。

db.your_collection.dropIndexes();

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對積木網的支持。

mac中利用NVM管理不同node版本的方法詳解
前言大家在開始本文的正文之前,建議大家先看看這篇文章:http://www.ockb.icu/article/73424.htm,這篇文章給大家詳細介紹了關于node.js下使用nvm或者n來進行

nodejs操作mongodb的增刪改查功能實例
本文實例講述了nodejs操作mongodb的增刪改查功能。分享給大家供大家參考,具體如下:安裝相關模塊如果使用這個的話,你需要先自己安裝一下他需要的

nodejs使用express獲取get和post傳值及session驗證的方法
本文實例講述了nodejs使用express獲取get和post傳值及session驗證的方法。分享給大家供大家參考,具體如下:獲取get和post傳值get的傳值被放入了一個對象中r

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
手游棋牌游戏运营
陕西快乐十分胆拖规则 湖南快乐十分在线计划 时时彩最精准人工计划 北京快乐8计划软件 云南11选五走势图 全国快三app 广西快乐双彩app 老吋时老时时360 浙江快乐12胆拖玩法介绍 快速时时计划 澳洲幸运10开奖记录下载 香港赛马会彩票网 广东时时开奖结果 福建时时走势图 快乐10分黑龙江走势图 上海快3开奖奖结果