基於mongoose 的增刪改查操做

不管是基於robomongo 的可視化工具,亦或是基於 mongoose 的函數工具,只要是對 mongodb 的操做,第一步都是開啓數據庫。sql

開啓mongodb 數據庫

進入mongod所在目錄 執行命令 ./mongod --dbpath=存放數據的位置
例1:./mongod --dbpath d:\MongoDB\db
例2:./mongod --dbpath d:\MongoDB\db --port 自定義端口號,默認27017(瞭解便可,不推薦使用,修改默認端口號後期維護麻煩)

新增數據

let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;

// 連接數據庫
mongoose.connect('mongodb://localhost/fay');

db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'))

db.once('open', (cb) => {
    // 設置數據庫類型
    let PersonSchema = new Schema({
        name: {
            type: 'String',
            required: true
        },
        age: {
            type: 'Number',
            retuired: true
        }
    });

    // 新建集合(如存在該集合,就選中)
    let PersonModel = db.model('person', PersonSchema);

    // 須要保存的數據
    let data =  {
        age: 50,
        name: 'leno'
    };

    // 實例化集合並插入數據
    let personEntity = new PersonModel(data);

    //  保存實例
    personEntity.save((err, res) => {
        if(err) return log(err);
        db.close();
    });
})

刪除數據

let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;

// 連接數據庫
mongoose.connect('mongodb://localhost/fay');

db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'))

db.once('open', (cb) => {
    // 設置數據庫類型
    let PersonSchema = new Schema({
        name: {
            type: 'String',
            required: true
        },
        age: {
            type: 'Number',
            retuired: true
        }
    });

    // 選擇集合(如不存在該集合,就新建)
    let PersonModel = db.model('person', PersonSchema);

    // 刪除的條件
    let del = {name: 'leno'};

    // 刪除命令
    PersonModel.remove(del, (err, res) => {
        if(err) throw new Error(err);

        log(res);
        db.close();
    })
    
});

修改數據

let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;

// 連接數據庫
mongoose.connect('mongodb://localhost/fay');

db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'))

db.once('open', (cb) => {
    // 設置數據庫類型
    let PersonSchema = new Schema({
        name: {
            type: 'String',
            required: true
        },
        age: {
            type: 'Number',
            retuired: true
        }
    });

    // 選擇集合(如不存在該集合,就新建)
    let PersonModel = db.model('person', PersonSchema);

    // 舊數據
    let oldVal = {name: 'leno'};

    // 新數據
    let newVal = {name: 'liao'};
    // 多個新數據
    let newVal2 = {name: 'liao', age: '25'};

    // 修改(更新)命令
    PersonModel.update(oldVal, newVal, (err, res) => {
        if(err) throw new Error(err);

        log(res);
        db.close();
    });
})

查詢數據

let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;

// 連接數據庫
mongoose.connect('mongodb://localhost/fay');

db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'))

db.once('open', (cb) => {
    // 設置數據庫類型
    let PersonSchema = new Schema({
        name: {
            type: 'String',
            required: true
        },
        age: {
            type: 'Number',
            retuired: true
        }
    });

    // 選擇集合(如不存在該集合,就新建)
    let PersonModel = db.model('person', PersonSchema);

    // 查詢條件
    let sql = {name: 'liao'};

    // 查詢命令
    PersonModel.find(sql, (err, res) => {
        if(err) throw new Error(err);

        log(res);
        db.close();
    });
});

追加字段

在已存在的集合中,添加新的字段。schema.add()mongodb

相關文章
相關標籤/搜索