zoukankan      html  css  js  c++  java
  • 使用Mongoose框架连接到Mongodb数据库,添加数据并查看,更新

    1,编写js代码

    //引入包
    // const mongoose = require('mongoose');
    
    // 建立 到mongoDB 的连接
    const mongoose = require('mongoose');
    // mongoose.connect('mongodb://localhost:27017/testmgdb', {
    mongoose.connect('mongodb://localhost:27017/scitc', {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        autoIndex: false
    });
    const conn = mongoose.connection;
    // 用流 的一个方式监听;
    conn.on('error', function(error) {
        console.log('数据库连接失败:' + error);
    });
    conn.once('open', function() {
        console.log('数据库连接成功');
    });
    
    
    // 定义模式
    /*
    ➢ 定义模式主要指定对应的MongoDB集合的字段和字段类型。
    ➢ 文档中每个属性的类型会被转换为模式定义对应的模式类型(SchemaType)。
    ➢ 可以直接声明模式类型为某一种类型,或者使用含有type属性的对象来声明类型。
    ➢ 可以指定的其他属性还有验证器、索引等。
     */
    let UserSchema = new mongoose.Schema({
        name: {
            type: String,
            lowercase: true //转小写
        },
        pwd: String,
        age: Number,
        date: { type: Date, default: Date.now }
    }, {
        versionKey: false
    });
    
    
    // 创建模型(model);
    /*
    ➢ 创建模型是将模式编译成模型,使用mongoose.model(modelName, schema)方法基于模式定义
    生成一个模型类,以对应于MongoDB集合。
    const User = mongoose.model('User', UserSchema);
    ➢ 直到模型所使用的数据库连接打开,集合才会被创建或删除。
    ➢ 每个集合都有一个绑定的连接。如果模型是通过调用mongoose.model()方法生成的,它使用的是
    Mongoose的默认连接。
    ➢ 自行创建的连接需要使用连接对象的model()函数来代替mongoose.model()方法,例如:
    var conn = mongoose.createConnection('mongodb://localhost:27017/test');
    var User = conn.model('User', UserSchema);
     */
    
    // 定义模型
    let User = mongoose.model('User', UserSchema); //对应数据库中名称为users 的集合;
    
    //实例化模型;
    let user = new User({
        name: '小向',
        pwd: '123456',
        age: 18
    });
    
    //进行实例操作;调用save()方法在数据库集合中存入一个文档。
    //保存数据 ;
    user.save(function(error, doc) {
        if (error) {
            console.log('save error:' + error);
        }
        console.log('save success:' + doc);
        //查找数据进行验证
        User.find({ name: '小向' }, (error, doc) => {
            console.log(doc);
        })
    });
    
    
    //更新数据
    // 将所有小向的age改为22
    User.update({ name: '小向' }, { $set: { age: 22 } }, { multi: true }, (err, docs) => {
        if (!err) {
            console.log("更新成功");
        }
        User.find({ name: '小向' }, (error, doc) => {
            console.log(doc);
        })
    })
    

    2,运行结果截图

  • 相关阅读:
    按钮组件如何处理点击事件(将原生事件绑定到自定义组件)
    一个简单的transition动画
    根据路由记录(利用matched)动态生成面包屑导航
    assets和static的异同
    Ceph集群概念以及部署
    腾讯质量效能提升最佳实践:智能自动化测试探索和建设
    腾讯WeTest压测大师通过中国计量科学研究院测试认证,获国家级权威认可
    新办公司每年费用
    2
    Leetcode刷题第三题 无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/d534/p/14815268.html
Copyright © 2011-2022 走看看