zoukankan      html  css  js  c++  java
  • Node js 如何使用 Mongodb

    官方文档: https://mongoosejs.com/docs/index.html

    安装

    npm install mongoose --save
    

    基本使用

    // 1. 引入包
    const mongoose = require("mongoose");
    
    // 2. 连接数据库
    mongoose.connect('mongodb://127.0.0.1/test_db');
    
    // 3. 获取数据库连接对象
    const connection = mongoose.connection;
    
    /**
     *  4. 监听数据库状态
    **/
    
    // 监听数据库的连接的打开和关闭
    connection.once("open", () => {
        console.log("数据库连接成功");
    });
    connection.once("close", () => {
        console.log("数据库已经关闭连接");
    });
    
    // 监听数据库错误
    connection.on("error", error => {
        console.log("数据库错误|Database error:" + error);
    });
    
    // 5. 创建Schema(模式对象) 类似于SQL中的设计表字段约束(此处的Schema注意大写)
    let userSchema = new mongoose.Schema({
        name : String,
        age: Number,
        sex: {
            type: String,
            default: "男"
        },
        height: Number
    });
    
    // 6. 创建model对象 model("collectionName", "documents")
    // 注意: 此处的 collectionName会自动转换为复数形式
    let userModel = mongoose.model("users", catSchema);
     
    // 7. 插入一条数据到 users 这个集合中
    userModel.create({ name : "zs", age: 18, height: 172 }, error => {
        if (error) throw error;
        console.log("插入成功");
    });
    

    插入数据

    // 插入一条数据
    userModel.create([ { name : "zs", age: 18, height: 172 } ], error => {
        if (error) throw error;
        console.log("插入成功");
    });
    
    // 一次插入多个数据
    userModel.create([
        { name : "zs", age: 18, height: 172 },
        { name : "ls", age: 20, height: 176 },
        { name : "wc", age: 28, height: 178 },
        { name : "ml", age: 32, height: 168 }
    ], error => {
        if (error) throw error;
        console.log("插入成功");
    });
    

    删除数据

    userModel.remove({name: 'ml'}, error => {
        if (error) throw error;
        console.log("删除成功");
    });
    

    修改数据

    userModel.update({'name' : 'zs'}, { $set: {height: 182} }, error => {
        if (error) throw error;
        console.log("修改成功");
    });
    

    查询数据

    • 简单使用
    // 带条件条件的查询
    userModel.find({name: 'zs'}, (error, docs) => {
        if (error) throw error;
        console.log(docs);
    });
    
    • 查询数据,限制显示字段并且跳过前两个显示一个
    // db.users.find({}, {_id:0, __v:0}).skip(2).limit(1);
    userModel.find( {}, {  _id: 0, __v:0 }, { skip:2, limit: 1 }, (error, docs) => {
        if (error) throw err;
        console.log(docs);
    });
    
    
  • 相关阅读:
    heat模板
    Leetcode812.Largest Triangle Area最大三角形面积
    Leetcode812.Largest Triangle Area最大三角形面积
    Leetcode811.Subdomain Visit Count子域名访问计数
    Leetcode811.Subdomain Visit Count子域名访问计数
    Leetcode806.Number of Lines To Write String写字符串需要的行数
    Leetcode806.Number of Lines To Write String写字符串需要的行数
    Leetcode819.Most Common Word最常见的单词
    Leetcode819.Most Common Word最常见的单词
    Leetcode783.Minimum Distance Between BST Nodes二叉搜索树结点最小距离
  • 原文地址:https://www.cnblogs.com/liaohui5/p/10581629.html
Copyright © 2011-2022 走看看