zoukankan      html  css  js  c++  java
  • Express使用MongoDB常用操作

    const MongoClient = require('mongodb').MongoClient
    
    const url = "mongodb://localhost:27017"
    const dbName = 'express-project'
    
    // 连接数据库
    MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {
      if (err) throw err
      console.log('数据库已连接')
      const db = client.db(dbName)
      // 创建集合
      db.createCollection("user", (err, res) => {
        if (err) throw err
        console.log('成功创建集合')
      })
      db.createCollection("alias", (err, res) => {
        if (err) throw err
        console.log('成功创建集合')
      })
      // ----------------------插入一条数据
      let user = db.collection("user")
      let alias = db.collection("alias")
      let myInfo = { name: '贾克斯', age: 18 }
      user.insertOne(myInfo, (err, res) => {
        if(err) throw err
        console.log('成功插入一条数据')
      })
      alias.insertOne({_id: 1}, (err, res) => {
        if(err) throw err
        console.log('成功插入一条数据')
      })
    
      // ----------------------插入多条数据, insertMany()
      let myFriends = [
        { name: '菲奥娜', age: 20 },
        { name: '杰斯', age: 19 },
        { name: '弗拉基米尔', age: 25}
      ]
      user.insertMany(myFriends, (err, res) => {
        if(err) throw err
        console.log(`成功插入${res.insertedCount}条数据!`)
      })
    
      // ----------------------查询数据, find(condition)
      user.find({ name: '贾克斯' }).toArray((err, docs) => {
        console.log('有如下数据:')
        console.log(docs)
      })
    
      // ----------------------多表联查,左连接查询
      user.aggregate([
        {
          $lookup:{
            from: 'alias', //左查询集合
            localField: 'alias_id', // 本地字段
            foreignField: '_id', // 对应本地字段的左查询集合字段
            as: 'userlist'
          }
        }
      ]).toArray((err, docs) => {
        if (err) throw err
        var jsonDoc = JSON.stringify(docs)
        console.log(jsonDoc)
      })
    
      // ----------------------更新单条数据
      alias.updateOne({ "_id": 1 }, {$set:{ "alias": "武器大师"}}, (err, res) => {
        if (err) throw err
        console.log("文档更新成功")
      })
    
      // ----------------------更新多条数据
      user.updateMany({ "age": 18 }, { $set: { "relationship": "opponent"}}, (err, res) => {
        if (err) throw err
        console.log(`${res.result.nModified}条文档被更新了`)
      })
    
      // ----------------------删除单条数据
      user.deleteOne({name: "杰斯"}, (err, res) => {
        if (err) throw err
        console.log(`已删除`)
      })
    
      // ----------------------删除多条数据
      user.deleteMany({age: 18}, (err, res) => {
        if (err) throw err
        console.log('已删除');
      })
    
      // ----------------------删除一个集合
      user.drop((err, res) => {
        if (err) throw err;
        console.log('已删除集合')
        client.close()
      })
    })
    
    
  • 相关阅读:
    angular的uiRouter服务学习(2)
    angular的uiRouter服务学习(1)
    angular学习笔记(三十一)-$location(2)
    angular指令中使用ngModelController
    angular中的表单数据自定义验证
    angular-ngSanitize模块-linky过滤器详解
    angular-1.3 之ng-model-options指令
    angular控制器的执行顺序和服务的注入情况
    angular五种服务详解
    .NET CORE EF 框架调用存储过程
  • 原文地址:https://www.cnblogs.com/wljqds/p/10719220.html
Copyright © 2011-2022 走看看