1. 程式人生 > >mongoose的基本操作(一)

mongoose的基本操作(一)

MongoDB是一個開源的NoSQL資料庫,相比MySQL那樣的關係型資料庫,它更顯得輕巧、靈活,非常適合在資料規模很大、事務性不強的場合下使用。同時它也是一個物件資料庫,沒有表、行等概念,也沒有固定的模式和結構,所有的資料以文件的形式儲存(文件,就是一個關聯陣列式的物件,它的內部由屬性組成,一個屬性對應的值可能是一個數、字串、日期、陣列,甚至是一個巢狀的文件。),資料格式就是JSON。

介紹了MongoDB,我們下面就要認識Mongoose了。

1. Mongoose是什麼?

Mongoose是MongoDB的一個物件模型工具,是基於node-mongodb-native開發的MongoDB nodejs驅動,可以在非同步的環境下執行。同時它也是針對MongoDB操作的一個物件模型庫,封裝了MongoDB對文件的的一些增刪改查等常用方法,讓NodeJS操作Mongodb資料庫變得更加靈活簡單。

2.
Mongoose能做什麼? Mongoose,因為封裝了對MongoDB對文件操作的常用處理方法,讓NodeJS操作Mongodb資料庫變得easy、easy、So easy! 1. 安裝mongoose: npm install mongoose 2. 引用mongoose: var mongoose = require("mongoose"); 3. 使用"mongoose"連線資料庫: var db = mongoose.connect("mongodb://user:[email protected]:port/database"); 4. 執行下面程式碼檢查預設資料庫test,是否可以正常連線成功? var
mongoose = require("mongoose"); var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); db.connection.on("error", function (error) { console.log("資料庫連線失敗:" + error); }); db.connection.on("open", function () { console.log("------資料庫連線成功!------"); }); 在MongoDB中,多個Document可以組成Collection(以下簡稱集合),多個集合又可以組成資料庫。 我們想要操作MongoDB資料,那就得先要具備上面所說的包含資料的“文件”,文件又是什麼意思呢,請看如下介紹。 文件 —— 是MongoDB的核心概念,是鍵值對的一個有序集,在JavaScript裡文件被表示成物件。同時它也是MongoDB中資料的基本單元,非常類似於關係型資料庫管理系統中的行,但更具表現力。 集合 —— 由一組文件組成,如果將MongoDB中的一個文件比喻成關係型資料庫中的一行,那麼一個集合就相當於一張表。 如果我們要通過Mongoose去建立一個“集合”並對其進行增刪改查,該怎麼實現呢,到這裡我們就要先了解Schema(資料屬性模型)、Model、Entity了。 Schema —— 一種以檔案形式儲存的資料庫模型骨架,無法直接通往資料庫端,也就是說它不具備對資料庫的操作能力,僅僅只是資料庫模型在程式片段中的一種表現,可以說是資料屬性模型(傳統意義的表結構),又或著是“集合”的模型骨架。 那如何去定義一個Schema呢,請看示例: var
mongoose = require("mongoose"); var TestSchema = new mongoose.Schema({ name : { type:String },//屬性name,型別為String age : { type:Number, default:0 },//屬性age,型別為Number,預設為0 time : { type:Date, default:Date.now }, email: { type:String,default:''} }); 基本屬性型別有:字串、日期型、數值型、布林型(Boolean)、null、陣列、內嵌文件等。 Model —— 由Schema構造生成的模型,除了Schema定義的資料庫骨架以外,還具有資料庫操作的行為,類似於管理資料庫屬性、行為的類。 如何通過Schema來建立Model呢,如下示例: var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); // 建立Model var TestModel = db.model("test1", TestSchema); test1:資料庫中的集合名稱,當我們對其新增資料時如果test1已經存在,則會儲存到其目錄下,如果未存在,則會建立test1集合,然後在儲存資料。 Entity —— 由Model建立的實體,使用save方法儲存資料,Model和Entity都有能影響資料庫的操作,但Model比Entity更具操作性。 使用Model建立Entity,如下示例: var TestEntity = new TestModel({ name : "Lenka", age : 36, email: "[email protected]" }); console.log(TestEntity.name); // Lenka console.log(TestEntity.age); // 36 建立成功之後,Schema屬性就變成了Model和Entity的公共屬性了。 例項: var mongoose = require("mongoose"); var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); var TestSchema = new mongoose.Schema({ name : { type:String }, age : { type:Number, default:0 }, email: { type:String }, time : { type:Date, default:Date.now } }); var TestModel = db.model("test1", TestSchema ); var TestEntity = new TestModel({ name : "helloworld", age : 28, email: "[email protected]" }); TestEntity.save(function(error,doc){ if(error){ console.log("error :" + error); }else{ console.log(doc); } });

相關推薦

mongoose基本操作

MongoDB是一個開源的NoSQL資料庫,相比MySQL那樣的關係型資料庫,它更顯得輕巧、靈活,非常適合在資料規模很大、事務性不強的場合下使用。同時它也是一個物件資料庫,沒有表、行等概念,也沒有固定的模式和結構,所有的資料以文件的形式儲存(文件,就是一個關聯陣

kubernets1.10.1--基本操作

k8s kubernets Kubectl管理工具 在node節點部署 # 設置集群項中名為kubernetes的apiserver地址與根證書 kubectl config set-cluster kubernetes --server=https://192.168.1.107:6443 --

oracle數據庫基本操作

ext pre dml arc 插入 esc update enc 相同 一、數據基本類型   1、oracle的偽列     Oracle 中偽列就像一個表列,但是它並沒有存儲在表中偽列可以從表中查詢,但不能插入、更新和刪除它們的值常用的偽列有ROWID和ROWNUM;

oracle 11g RAC 的基本操作------啟動與關閉

執行 同時 man sources monit vip nag 查看數據庫 resource 啟動RAC 手工啟動按照HAS, cluster, database的順序啟動,具體命令如下: 啟動HAS(High Availability Servi

python列表基本操作

一個 處理 move 長度 指定 排序 app 索引 處理方法 函數list 有些時候修改字符串不能像列表那樣,可以使用list來解決 list函數實際上是一個類,而不是函數。 somelist = list(‘hello‘) 字符串str1 = hello world,

JDBC資料庫基本操作

1.什麼是JDBC? 在看JDBC的概念之前先來看看什麼是資料庫驅動。 資料庫驅動中驅動的概念和平時聽到的那種驅動的概念是一樣的,比如平時購買的音效卡,網絡卡直接插到計算機上面是不能用的,必須要安裝相應的驅動程式之後才能夠使用音效卡和網絡卡,同樣道理,我們安裝好資料庫之後,我們的應用程式也是不能直接使用資

MongoDB基礎教程系列--第二篇 MongoDB基本操作

1、安裝環境 在官網上下載MongoDB的最新版本,根據自身Windows版本下載正確的MongoDB版本。下載後,雙擊32位或者64位.msi檔案,按操作提示安裝就可以了。 說明: 32 位版本的 MongoDB 只支援 2G 以下的資料庫,只適用於測試及評估。 在

Linux基本操作

文章同步更新在我的知乎專欄: 1. 使用Microstrong使用者,登入到Linux圖形介面。 2. 虛擬控制檯(允許多個使用者同時登入,或同一使用者在同一時間內多次登入,即每個控制檯就是一個登入通道) 圖形介面下:Ctrl+Alt+F1(F2~F6),其中F1是

SQL server2008基本操作

SQL server2008基本操作 目錄  1.註冊伺服器 (1)註冊一個本地伺服器S1,測試註冊是否成功,如果成功則儲存該伺服器註冊。步驟: 第1步:開啟SQL Server Management Studio視窗→“檢視” → “

C++基本操作:string

1,統計字串長度    int length();     2, 判斷是否為空    bool empty();     3, 字串的連線    string &

Linux系統常用基本操作

一、Linux命令列 [[email protected] ~]$ [[email protected] ~]# 1、user、root 當前操作的使用者; 2、@bigdata

棧的基本操作

1.棧的基本概念 棧是一種只能在一端進行插入或刪除操作的線性表。其中允許進行插入或刪除操作的一端稱為(Top),棧頂由一個稱為棧頂指標的位置指示器(其實就是一個變數,對於順序棧,就是記錄棧頂元素在陣列位置標號的一個整型變數;對於鏈式棧,就是記錄棧頂元素所在結點

ArcGIS for Android Runtime100 基本操作——圖層載入和切換

      之前我打算通過程式碼移植的方式來學習ArcGIS for Android Runtime100,博文地址是:http://blog.csdn.net/bit_kaki/article/details/7719648。但是覺得效果不太理想,因為這個版本的變化實在太

檔案基本操作

一、1 什麼是檔案?    檔案是作業系統為使用者或應用程式提供的一個讀寫硬碟的虛擬單位    檔案的操作核心就是:讀、寫    即我們只需要對於進行讀寫操作,就是對作業系統發起請求,然後由作業系統將使用者或者應用程式    對檔案的讀寫操作轉換成具體的硬碟指令(比如控制碟片

SpringBoot基本操作——環境搭建及專案建立有demo

SpringBoot2.0筆記 本文使用idea工具構建Springboot2.0+SpringMvc+Thymeleaf+SpringDataJPA+MySql+Redis專案 此demo可直接下載執行,以下為具體建立專案過程步驟說明

Mysql基礎2:SQL語句基本操作

1. DDL:庫操作、表操作和列操作等(使用的關鍵字:create、alter和drop) 1.1  庫操作 基本語法:create database 資料庫名字 [資料庫選項] 資料庫選項:主要是用來約束資料庫,可分為兩項: 1)字符集的設定:charset或者

串的性質和基本操作

串的概念 什麼是串呢? 串(String):由零個或多個字元組成的有限序列。記為:s=’a1a2…an’(n≥0) s為串名, ’a1a2…an’為串值,n為串的長度。

thinkphp5.0 資料庫基本操作

連結資料庫 一共有三種模式,一般第一種就夠了 第一種直接配置application裡面的database.php檔案 // 伺服器地址 'hostname' => '1

Python影象處理的基本操作

1.安裝PIL:Python 影象處理庫 2.基本操作 利用PIL中的函式,我們可以從大多數影象格式的檔案中讀取資料,然後寫入最常見的影象格式檔案中。PIL中最重要的模組為Image。要讀取一幅影

python下的Pandas中DataFrame基本操作基本函式整理

pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYSIS】中對pandas的方方面面都有了一個權威簡明的入門級的介紹,但在實際使用過程中,我發現書中的內容還只是冰山一角。談到pandas資料的行更新、表合併等操作,一般用到的