mongodb數據庫的使用

最近在學習node,因此據說node和mongodb更配哦。。因此我就來學習mongodb了
node

1、mongodb的開啓和關閉

1. 查找mongod是否可用

which mongodmysql

2. 啓動mongodb

指定path 和log日誌
mongod --dbpath /data2/db --port=27017 --fork /data2/db/log/mongod.logsql

3. 關閉數據庫

mongod --shutdownmongodb

2、mongodb的操做

1. 鏈接服務器

mongod 115.29.137.34:27017數據庫

2. 使用數據庫

(不存在的數據庫也可使用,插入數據以後會自動保存)
use mydbnpm

3. 權限登錄

db.auth('username','password')api

4. 展現數據庫列表

show dbs服務器

5. 插入數據

(相似於mysql的表)
db.users.insert({'name':'xiaomo'})
db.users.insert({'name':'xiaoming','age':25})
db.users.insert({'name':'xiaoming','age':24,'sex':'女'})koa

6. 查詢集合

(前提是use了一個數據庫)
有一個System.indexes 是索引
show collectionsmongoose

7. 不帶條件查詢

db.users.find()

8. 帶條件查詢

(參數是一個對象)
db.users.find({'name':'xiaomo'})

9. 更新數據

(有三個參數,1:查詢條件,2:更新的內容 3:更新的配置)
db.users.update({'name':'xiaomo',{$set:{'name:'xm}}) 修改知足條件的第一條數據
db.users.update({'name':'xiaomo',{$set:{'name:'xm}},{multi:true}) 修改全部知足條件的數據

10. 保存數據

(只有一個參數,必需要傳id,後面是要修改的數據)
db.users.save({'id':'objectId(574710a97a3afd63cde56a49)','age':30})

11. 刪除數據

(1:條件 2 是否刪除全部符合條件的)
db.users.remove({'name':'xiaomoing'},true)

12. 刪除集合

db.users.drop()

3、使用mongoose操做數據庫

1. 模塊的介紹

鏈接mongdodb的驅動

2. 配置和連接

npm install --save mongoose

var mongoose = require('mongoose');
  <!-- var uri = 'mongodb://username:password@hostname:port/databasename'; -->
  var uri = 'mongodb://xiaomo:xiaomo@115.29.137.34:27017/admin';
  mongoose.connect(uri);

3. Model 和Shema

// model.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var BlogPost = new Schema({
    author    : ObjectId,
    title     : String,
    body      : String,
    date      : Date
});

//Model
mongoose.model('blog',Schema);

var Comment = new Schema({
  name: { type: String, default: 'hahaha' },
  age: { type: Number, min: 18, index: true },
  bio: { type: String, match: /[a-z]/ },
  date: { type: Date, default: Date.now }
});

// a setter
Comment.path('name').set(function (v) {
  return capitalize(v);
});

// middleware
Comment.pre('save', function (next) {
  notify(this.get('email'));
  next();
});

4. 建立文檔

//insert.js
  var mongoose = require('mongoose');
  require('./model.js'); //執行
  var Blog = mongoose.model('blog');
  var blog = new Blog({
      name:'xiaomo',
      age:25,
      bio:'don't know',
      date:new Date
    });

  book.save(function(err){
      console.log('save status:'+err);
    });

5. 刪除文檔

var mongoose = require('mongoose');
  require('./model.js');
  var Blog = mongoose.model('blog');
  Blog.findOne({'name':'xiaomo'},function(err,doc){
    if(err){
    console.log(err)
    return;
    }
    if(doc){
    doc.reomove();
  }
    })

6. 簡單查詢

var mongoose = require('mongoose');
  require('./model.js');
  var Blog = mongoose.model('blog');
  Blog.find({},function(err,doc){
    if(err){
    console.log(err)
    return;
    }
    console.log('result',doc)
    })

第一個知足條件的結果

var mongoose = require('mongoose');
  require('./model.js');
  var Blog = mongoose.model('blog');
  Blog.findOne({'name':'xiaomo'},function(err,doc){
    if(err){
    console.log(err)
    return;
    }
    console.log('result',doc)
    })

7. 條件語句

// condation.js
  var mongoose = require('mongoose');
  require('./model.js');
  var Blog = mongoose.model('blog');
  //名字是xiaomo或者xiaoming 能夠用$or和$and
  var condation = {
    $or  $and:[
    {'name':'xiaomo'},
    {'name':'xiaoming'}
    ]
  }
  Blog.find(condation,function(err,doc){
    if(err){
    console.log(err)
    return;
    }
    console.log('result',doc)
    })

3、在項目中使用mongoose

1. 生成項目

koa koatest -e koatest

2. 安裝依賴

cd koatest && npm install

3. 安裝mongoose

npm install --save mongoose

4. 建立模型

// models/users.server.model.js
  var mongoose = require('mongoose');
  var UserSchema = new mongoose.Schema({
      uid:Number,
      username:String,
      createTime:Date,
      lastLogin:Date
    })
  module.exports = mongoose.model('User',UserSchema);

5. 建立配置文件

// config/config.js
  module.exports={
    mongodb:'mongodb://xiaomo:xiaomo@115.29.137.34:27017/admin'
  }
  //config/mongoose.js
  var mongoose = require('mongoose');
  var config = require('./config.js');

  module.exports=function(){
    var db = mongoose.connect(config.mongodb);
    require('./../models/users.server.model.js');
    return db;
  }

6. 操做mongdodb 代碼

//routers/users.js
  var router = require('koa-router')();
  var mongoose = require('mongoose');
  var User = mongoose.model('User');
  router.get('/', function *(next) {
      //add
      var user = new User({
        uid:
        })
      this.body = yield User.find({});
  });
  module.exports = router;
相關文章
相關標籤/搜索