• python | 基于mongoose 的增删改查操作


    无论是基于robomongo 的可视化工具,亦或是基于 mongoose 的函数工具,只要是对 mongodb 的操作,第一步都是开启数据库。
    
    开启mongodb 数据库
    进入mongod所在目录 执行命令 ./mongod --dbpath=存放数据的位置
    例1:./mongod --dbpath d:MongoDBdb
    例2:./mongod --dbpath d:MongoDBdb --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()
    

      

  • 相关阅读:
    ....
    CodeForces 375A(同余)
    POJ 2377 Bad Cowtractors (最小生成树)
    POJ 1258 AgriNet (最小生成树)
    HDU 1016 Prime Ring Problem(全排列)
    HDU 4460 Friend Chains(bfs)
    POJ 2236 Wireless Network(并查集)
    POJ 2100 Graveyard Design(尺取)
    POJ 2110 Mountain Walking(二分/bfs)
    CodeForces 1059B Forgery(模拟)
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/12131471.html
Copyright © 2020-2023  润新知