mongoDB

  1. mongoose

入門

首先要確保你已經MongoDB的Node.js的安裝。javascript

mongoose官網http://www.nodeclass.com/api/mongoose.html#quick_starthtml

具體用法查文檔java

接下來使用npm如下命令從命令行安裝Mongoose node

$ npm install mongoose

如今說咱們喜歡模糊的小貓,而且想要記錄咱們在MongoDB中見過的每一隻小貓。咱們須要作的第一件事是在咱們的項目中包含貓鼬,並test在咱們本地運行的MongoDB實例上打開與數據庫的鏈接mongodb

// getting-started.js var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test');

咱們有一個到本地主機上運行的測試數據庫的掛起鏈接。若是咱們成功鏈接或發生鏈接錯誤,咱們如今須要獲得通知:數據庫

var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function (callback) { // yay! });

一旦咱們的鏈接打開,咱們的回調將被調用。爲簡潔起見,咱們假設全部如下代碼都在此回調中。npm

使用Mongoose,全部內容都來自Schema讓咱們參考它並定義咱們的小貓。api

var kittySchema = mongoose.Schema({ name: String })

到如今爲止還挺好。咱們有一個有一個屬性的模式name,這將是一個 String下一步是將咱們的模式編譯成模型服務器

var Kitten = mongoose.model('Kitten', kittySchema)

模型是咱們構建文檔的類。在這種狀況下,每一個文檔將成爲一個小貓,其特性和行爲在咱們的模式中聲明。讓咱們建立一個小貓文檔,表明咱們在外面人行道上遇到的小傢伙:數據結構

var silence = new Kitten({ name: 'Silence' }) console.log(silence.name) // 'Silence'

小貓能夠喵喵叫,那麼讓咱們來看看如何在咱們的文檔中添加「speak」功能:

// NOTE: methods must be added to the schema before compiling it with mongoose.model() kittySchema.methods.speak = function () { var greeting = this.name ? "Meow name is " + this.name : "I don't have a name" console.log(greeting); } var Kitten = mongoose.model('Kitten', kittySchema)

添加到methods模式屬性的函數會被編譯到Model原型中並顯示在每一個文檔實例上:

var fluffy = new Kitten({ name: 'fluffy' }); fluffy.speak() // "Meow name is fluffy"

咱們有說話的小貓!可是咱們仍然沒有保存任何東西給MongoDB。經過調用其保存方法能夠將每一個文檔保存到數據庫中回調的第一個參數將是一個錯誤,若是有任何發生。

fluffy.save(function (err, fluffy) { if (err) return console.error(err); fluffy.speak(); });

說時間過去了,咱們想要展現咱們見過的全部小貓。咱們能夠經過咱們的小貓模型訪問全部的小貓文檔

Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens) })

咱們只是將全部的小貓都記錄在咱們的數據庫中。若是咱們想按名稱過濾咱們的小貓,Mongoose支持MongoDB豐富的查詢語法。

》》2.MongoDb服務器鏈接mongoose的用法Kitten.find({ name: /^Fluff/ }, callback)

var mongoose = require("mongoose");

//第一步: mongoose來鏈接上mongodb的服務器

//建立鏈接 nodejs-mongodb
//mongodb://localhost:27017/test test:數據庫名稱
const dbUrl = "mongodb://localhost:27017/test";

//創建鏈接
mongoose.connect(dbUrl);

//監聽是否鏈接成功 connected
mongoose.connection.on("connected",(socket)=>{
console.log(`${dbUrl} 鏈接成功了!`)
})


//第二步:操做mongodb/test->collections
//mongodb test goods
//step1:須要在nodejs下建立一個和goods集合對應的一個數據結構 schema
// mongodb goods集合
// nodejs goods一樣的一結構 _id,title,des,price
// nodejs goodsschema <- mongoose -> goods 綁定
// 綁定model->CURD->SYSN database
//建立一個schma,用來建立js與mongodb中的collectons的對應schema
var Schema = mongoose.Schema;

//經過schema來建立一個集合在程序中的代理
//userSchema-> users
var userSchema = new Schema({
name:{type:String},
age:{type:Number},
sex:{type:String}
})

//綁定userSchema與數據庫中的collection users
var userModel = mongoose.model("users",userSchema);


//第三步,操做userModel->mongoose
//CURD
//1.添加一個新的文檔 document
function SaveUser() {
var user = new userModel({
name:"lisi",
age:20,
sex:"male"
});
//save來保存數據`
user.save((error,result)=>{
console.log(result)
})
}

//2.刪除用戶信息:根據條件來刪除
function deleteUser() {
userModel.remove({"name":"lisi"}).exec((error,result)=>{
console.log(result)
})
}

//修改用戶信息
function updateUser() {
userModel.update({"name":"zhangsan"},{$set:{"age":30}}).exec((error,result)=>{
console.log(result)
})
}

//查詢用戶
function getUsers() {
userModel.find({"name":"xxx"}).exec((error,results)=>{
console.log(results)
})
}

//查詢分頁: skip limit
// skip: 跳過多少行記錄
// limit: 限制顯示的行數 skip(pageindex*pagesize).limit(pagesize)
function getPager(pageIndex,pageSize) {
userModel.find({}).skip(pageIndex*pageSize).limit(pageSize).exec((error,result)=>{
console.log(result)
})
}


getPager(4,1);

 

3.MongoDB具體簡單用法

詳情看http://www.runoob.com/mongodb/mongodb-tutorial.html

相關文章
相關標籤/搜索