node13---node使用mongodb

來源:互聯網
上載者:User

標籤:--   find   函數   頁面   ann   ted   存在   串連失敗   地址   

01.js

/** *最先的後台語言是Asp(微軟的), */var express = require("express");//資料庫引用var MongoClient = require(‘mongodb‘).MongoClient;var assert = require(‘assert‘);//調試用的:assert.equal(null,err);出錯停止執行下面語句var app = express();//資料庫連接的地址,最後的斜杠表示資料庫名字,資料庫不存在會建立var shujukuURL = ‘mongodb://localhost:27017/itcast‘;app.get("/",function(req,res){    //串連資料庫,這是一個非同步操作    MongoClient.connect(shujukuURL, function(err, db) {        if(err){            res.send("資料庫連接失敗");            return;        }        res.write("恭喜,資料庫已經成功串連 \n");        db.collection("teacher").insertOne({"name":"哈哈"},function(err,result){            if(err){                res.send("資料庫寫入失敗");                return;            }            res.write("恭喜,資料已經成功插入");            res.end();            //關閉資料庫            db.close();        });    });});app.listen(3000);

02.js

/** * Created by Danny on 2015/9/23 17:24. */var express = require("express");var MongoClient = require(‘mongodb‘).MongoClient;var assert = require(‘assert‘);var app = express();app.set("view engine","ejs");//資料庫連接的地址,最後的斜杠表示資料庫名字var shujukuURL = ‘mongodb://localhost:27017/itcast‘;app.get("/",function(req,res){    //先串連資料庫,對資料庫的所有操作,都要寫在他的回呼函數裡面。    MongoClient.connect(shujukuURL, function(err, db) {        if(err){            //res.write("資料庫連接失敗");            return;        }        //res.write("恭喜,資料庫已經成功串連 \n");        //查詢資料庫,cursor遊標,遊標可以用each方法遍曆        //每次表示一條document        var result = [];        var cursor = db.collection(‘teacher‘).find( );        cursor.each(function(err, doc) {            if(err){                //res.write("遊標遍曆錯誤");                return;            }            if (doc != null) {                result.push(doc);            } else {                //console.log(result);                //遍曆完畢                db.close();                res.render("index",{                    "result" : result                });            }        });    });});app.get("/add",function(req,res){    res.render("add");//add頁面});app.get("/tijiao",function(req,res){    //得到參數    var name = req.query.name;    var age = req.query.age;    var yuwenchengji = req.query.yuwenchengji;    var shuxuechengji = req.query.shuxuechengji;    MongoClient.connect(shujukuURL, function(err, db) {        if(err){            console.log("資料庫連接失敗");            return;        }        db.collection("teacher").insertOne({            "name" : name,            "age" : age,            "score" : {                "shuxue" : shuxuechengji,                "yuwen" : yuwenchengji            }        },function(err,result){            if(err){                console.log("資料庫寫入失敗");                return;            }            res.send("恭喜,資料已經成功插入");            res.end();            //關閉資料庫            db.close();        });    });});app.listen(3000);

03.js

var express = require("express");var app = express();var MongoClient = require(‘mongodb‘).MongoClient;app.get("/",function(req,res){    //url就是資料庫的地址。/表示資料庫    //假如資料庫不存在,沒有關係,程式會幫你自動建立一個資料庫    var url = ‘mongodb://localhost:27017/haha‘;    //串連資料庫,每個使用者請求來就開啟資料庫最後又關閉資料庫(php也是每次開啟資料庫後關閉資料庫)    MongoClient.connect(url, function(err, db) {        //回呼函數表示串連成功做的事情,db參數就是串連上的資料庫實體        if(err){            console.log("資料庫連接失敗");            return;        }        console.log("資料庫連接成功");        //插入資料,集合如果不存在,也沒有關係,程式會幫你建立        db.collection(‘student‘).insertOne({//產生的id前幾位是時間戳記後面是機器碼,全球唯一            "name" : "哈哈",            "age" : parseInt(Math.random() * 100 + 10)        }, function(err, result) {            if(err){                console.log("插入失敗");                return;            }            //插入之後做的事情,result表示插入結果。            //console.log(result);            res.send(result);            db.close();        });    });});app.listen(3000);

 分頁:

一、資料庫分頁,想想我們的百度百家Ajax案例,當時調用了百度的JSON,有一個參數叫做page=3,產生的JSON不一樣。這個就是分頁,就是我們想尋找所有的新聞,但是是位於第3頁的新聞。那麼有兩種做法:1) 錯誤的做法: 就是講所有的result都讀取到數組,然後進行資料操作,進行分頁;2) 正確的做法: 就是真的在資料庫中,唯讀取這麼多內容。錯誤的,我們試圖每次都讀取全部資料,但是這樣開銷很大。1    var a = [];2    db.find("student",{},function(err,result){3        for(var i = 10 * page ; i < 10 * (page + 1) ; i++){4            a.push(result[i]);5        }6        res.send(a);7    });所以,mongodb提供了傻傻的兩個函數。limit():讀取的條數, skip():跳過多少條加入,第一頁是page=0。每頁10條,所以當前頁的查詢語句1db.student.find({}).limit(10).skip(page*10)資料總數怎麼得到?shell中1db.student.stats().count;

 

node13---node使用mongodb

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.