摘要:的邏輯結構是一種層次結構,主要由文檔集合數據庫這三部分組成的。文檔由鍵值對構成,像等,它是核心單元,的文檔,相當于關系數據庫中的一行記錄。我們以此為例看它如何使用真實項目中參考學習筆記之的使用入門教程的一些操作命令
簡介
在說MongoDB數據插入操作之前,我們先來簡單了解下它的數據邏輯結構。
MongoDB的邏輯結構是一種層次結構,主要由:文檔(document)、集合(collection)、數據庫(database)這三部分組成的。
文檔(document):由鍵/值對構成,像{a:1};{s:"abc"}等,它是MongoDB核心單元,MongoDB的文檔(document),相當于關系數據庫中的一行記錄。
集合(Collection):多個文檔組成一個集合(collection),相當于關系數據庫的表。
數據庫(database):多個集合(collection),邏輯上組織在一起,就是數據庫(database)。
一個MongoDB實例支持多個數據庫(database)。
模式
模型
文檔
快速安裝 安裝 MongoDB在 Ubuntu 16.04 上安裝 MongoDB 可參考 MongoDB Docs:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 $ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list $ sudo apt-get update $ sudo apt-get install -y mongodb-org
在 CentOS 7 上安裝 MongoDB 可參考 MongoDB Docs:
$ sudo vi /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc $ sudo yum install -y mongodb-org工具模塊
Mongoose 它能對Mongodb進行建模操作
安裝及引用 安裝npm install mongoose引用mongoose
var mongoose = require(“mongoose”);使用mongoose鏈接數據庫
var db = mongoose(“mongodb://user:pass@localhost:port/database”);示例
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(“——數據庫連接成功!——”); });Schema-模式定義
在模式里面我們對字段進行定義,可以定義字段的類型
var mongoose = require("mongoose") var MovieSchema = new mongoose.Schema({ doctor.String, title: String, language: String, country: String, year: Number, summary: String })Model - 編譯模型
我們調用mongoose.model時候對傳入的Schema也就是模式進行編譯,然后生成構造函數
var mongoose = require("mongoose") var MovieSchema = require("../shemas/movie") var Movie = mongoose.model( "movie", "MovieSchema" ) module.export = MovieDocuments - 文檔實例化
有了數據的模型以后,要對文檔實例化,只需要調用這個模型,也就是這個構造函數,然后傳入一條數據.然后再調save方法jiu能把這條數據存儲到數據庫里面去
var Movie = require("./models/movie") var movie = new Movie(){ title: "機械戰警", doctor: "何塞.帕蒂利亞", year: 2018 } movie.save(function (err) { if (err) return handleError(err) })數據庫的查詢
數據庫的查詢分為批量的,單條的,或者特定條件的查詢
數據庫批量查詢:只需要調用模型的find方法
var Movie = require("./models/movie") app.get("/", function(req, res) { Movie .find({}) .exec(function(err, movies) { res.render("index", { title: "jx_movie首頁", movies: movies }) }) })數據庫單條查詢
var Movie = require("./models/movie") app.get("/", function(req, res) { Movie .findOne({_id: id}) .exec(function(err, movies) { res.render("index", { title: "jx_movie首頁", movies: movies }) }) })數據庫單條刪除
var Movie = require("./models/movie")
app.get("/", function(req, res) { Movie .remove({_id: id}, function (err, movie) { if(err) { console.log(err) } }) })MongoDB基礎
Schema : 一種以文件形式存儲的數據庫模型骨架,不具備數據庫的操作能力
Model : 由Schema發布生成的模型,具有抽象屬性和行為的數據庫操作對
Entity :由Model創建的實體,他的操作也會影響數據庫
詳解Schema —— 一種以文件形式存儲的數據庫模型骨架,無法直接通往數據庫端,也就是說它不具備對數據庫的操作能力,僅僅只是數據庫模型在程序片段中的一種表現,可以說是數據屬性模型(傳統意義的表結構),又或著是“集合”的模型骨架。
var mongoose = require("mongoose") var TestSchema = new mongoose.Schema({ name : {type:String}, age : {type:Number,default:0}, time : {type:Date,default:Date.now}, emial : {type:String,default:""} }); // 基本屬性類型有:字符串、日期型、數值型、布爾型(Boolean)、null、數組、內嵌文檔等
Model —— 由Schema構造生成的模型,除了Schema定義的數據庫骨架以外,還具有數據庫操作的行為,類似于管理數據庫屬性、行為的類。
var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); // 通過Schema創建Model var TestModel = db.model("test1", TestSchema);
Entity —— 由Model創建的實體,使用save方法保存數據,Model和Entity都有能影響數據庫的操作,但Model比Entity更具操作性。
var TestEntity = new TestModel({ name : "Lenka", age : 36, email : "lenka@qq.com" }); console.log(TestEntity.name); // Lenka console.log(TestEntity.age); // 36示例 Node.js 連接 MongoDB
$ cnpm install mongodb
與 MySQL 不同的是 MongoDB 會自動創建數據庫和集合,所以使用前我們不需要手動去創建。
插入數據這里是用https://mlab.com 建的一個mongodb數據庫,我們可以看到
{item: "buy flowers"}
數據已經寫進去了
具體實現可以看這個用 用node+express+mongodb+ejs寫的小項目todo_app
Windows 平臺安裝 MongoDB
Redis 安裝
egg-mongooseegg-mongooseegg.js中操作mogodb的插件。我們以此為例看它如何使用:
真實項目中:
app/model/user.js
config/config.default.js
config/plugin.js參考
MongoDB學習筆記之Mongoose的使用
MongoDB入門
教程
https://mlab.com/
Intro to NoSQL / MongoDB
mongoose的一些操作命令
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/18998.html
摘要:將就用一下,能實現相同的功能就可以了。的方法可以從返回最大值,但是新版中的不行,只能通過這樣的方式返回最大值。 前篇 使用React、Node.js、MongoDB、Socket.IO開發一個角色投票應用的學習過程(一)使用React、Node.js、MongoDB、Socket.IO開發一個角色投票應用的學習過程(二) 原文第十三步,Express API路由 第一個路由是用來創建角...
摘要:基本介紹這是一個基本的環境搭建不同的操作系統可以選擇不同的安裝方式如果不需要太多的安裝步驟就直接在官網下載最新版安裝包進行安裝即可環境配置必須安裝的軟件更改源與更新系統首先備份下載的源配置文件運行生成緩存更新系統安裝使用安裝命 基本介紹 這是一個基本的Node.js環境搭建,不同的操作系統可以選擇不同的安裝方式 如果不需要太多的安裝步驟,就直接在Node.js官網下載最新版安裝包進行...
摘要:除了定義數據結構,還可以設定默認值,處理輸入,以及加強校驗添加任務搜索文檔更新文檔 創建一個http 服務器 showImg(https://segmentfault.com/img/bVWNvM?w=922&h=163); 服務器 響應方式 showImg(https://segmentfault.com/img/bVWNwI?w=902&h=168); showImg(https...
閱讀 2142·2023-04-26 00:00
閱讀 3239·2021-09-24 10:37
閱讀 3528·2021-09-07 09:58
閱讀 1517·2019-08-30 15:56
閱讀 2217·2019-08-30 13:11
閱讀 2311·2019-08-29 16:38
閱讀 959·2019-08-29 12:58
閱讀 1876·2019-08-27 10:54