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);
});

原文地址:https://www.cnblogs.com/liaohui5/p/10581629.html