MongoDB的入门使用

MongoDB的入门使用

数据库

  • 数据库是按照数据结构来组织、存储和管理数据的仓库
  • 程序是在内存中运行的,一旦程序运行结束或者计算机断电,程序运行中的数据都会丢失
  • 所以就需要讲一些程序运行的数据持久化到硬盘中,以确保数据的安全性。而数据库就是数据持久化的最佳选择
  • 即,数据库就是存储数据的仓库

数据库的分类

关系型数据库(RDBMS)

  • MySQL、Oracle、DB2、SQL Server、……
  • 关系数据库中全都是表

非关系型数据库(NoSQL)

  • MongoDBRedis、……
  • 键值对数据库
  • 文档数据库MongoDB

MongoDB

MongoDB 简介

  • MongoDB是为快速开发互联网Web应用而设计的数据库系统
  • MongoDB的设计目标是极简、灵活、作为Web应用栈的一部分
  • MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库存的是各种各样的JSON(BSON)。

MongoDB 的下载安装

MongoDB的官网下载地址:https://www.mongodb.com/download-center/community

Windows其他下载地址:https://www.mongodb.org/dl/win32

MongoDB的版本偶数版本为稳定版,奇数版本为开发版

MongoDB对于32位系统支持不佳,所以3.2版本以后没有再对32位系统的支持

当前安装的版本是:Windows10 64位 MongoDB 3.2.4

Windows的安装,一直下一步就好。

配置环境变量

  • 复制 安装目录/bin 路径 如 D:\Program\MongoDB\bin

  • 右击我的电脑,属性-高级系统设置-环境变量

  • 用户变量-path-添加复制的路径

  • 验证是否配置成功:

    • mongod:用来启动服务器
    命令行窗口 输入 mongod
    输出:
    2020-01-02T15:14:19.948+0800 I CONTROL  [initandlisten] MongoDB starting : pid=23372 port=27017 dbpath=C:\data\db\ 64-bit host=ruozhuliufeng
    2020-01-02T15:14:19.949+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten] db version v3.2.4
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten] modules: none
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten] build environment:
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
    2020-01-02T15:14:19.950+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2020-01-02T15:14:19.951+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2020-01-02T15:14:19.952+0800 I CONTROL  [initandlisten] options: {}
    2020-01-02T15:14:19.953+0800 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory C:\data\db\ not found., terminating
    2020-01-02T15:14:19.954+0800 I CONTROL  [initandlisten] dbexit:  rc: 100
    说明配置成功!
    
  • 在C盘创建文件夹 data,在data文件夹中新建db文件夹用来存放数据库信息

    命令行再次输入mongod启动服务器
    C:\Users\若竹流风>mongod
    2020-01-02T15:17:28.410+0800 I CONTROL  [initandlisten] MongoDB starting : pid=22108 port=27017 dbpath=C:\data\db\ 64-bit host=ruozhuliufeng
    2020-01-02T15:17:28.411+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
    2020-01-02T15:17:28.413+0800 I CONTROL  [initandlisten] db version v3.2.4
    2020-01-02T15:17:28.414+0800 I CONTROL  [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
    2020-01-02T15:17:28.417+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
    2020-01-02T15:17:28.418+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2020-01-02T15:17:28.419+0800 I CONTROL  [initandlisten] modules: none
    2020-01-02T15:17:28.420+0800 I CONTROL  [initandlisten] build environment:
    2020-01-02T15:17:28.422+0800 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
    2020-01-02T15:17:28.428+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2020-01-02T15:17:28.429+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2020-01-02T15:17:28.429+0800 I CONTROL  [initandlisten] options: {}
    2020-01-02T15:17:28.441+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    2020-01-02T15:17:28.554+0800 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
    2020-01-02T15:17:28.554+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory 'C:/data/db/diagnostic.data'
    2020-01-02T15:17:28.577+0800 I NETWORK  [initandlisten] waiting for connections on port 27017
    
    最后一行表明服务器已成功启动,默认端口27017
    注意:32位系统启动服务器时,需要输入以下内容:
    mongod --storageEngine=mmapv1 
    
  • 测试连接MongoDB:

    • mongo:用来连接数据库
    上一个命令行不能关闭,新建命令行,并输入mongo
    C:\Users\若竹流风>mongo
    MongoDB shell version: 3.2.4
    connecting to: test
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
            http://docs.mongodb.org/
    Questions? Try the support group
            http://groups.google.com/group/mongodb-user
    >
    出现 > 表明连接成功
    
  • 指定端口和路径

    • mongod --dbpath 路径 --port 端口号

    • 例如:

      在D盘新建data文件夹(名字自定义),在data文件内新建db文件夹用来存放数据库信息
      C:\Users\若竹流风>mongod --dbpath D:\data\db --port 10086
      2020-01-02T15:31:02.322+0800 I CONTROL  [initandlisten] MongoDB starting : pid=14304 port=10086 dbpath=D:\data\db 64-bit host=ruozhuliufeng
      2020-01-02T15:31:02.323+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
      2020-01-02T15:31:02.325+0800 I CONTROL  [initandlisten] db version v3.2.4
      2020-01-02T15:31:02.325+0800 I CONTROL  [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
      2020-01-02T15:31:02.326+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
      2020-01-02T15:31:02.326+0800 I CONTROL  [initandlisten] allocator: tcmalloc
      2020-01-02T15:31:02.327+0800 I CONTROL  [initandlisten] modules: none
      2020-01-02T15:31:02.327+0800 I CONTROL  [initandlisten] build environment:
      2020-01-02T15:31:02.328+0800 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
      2020-01-02T15:31:02.328+0800 I CONTROL  [initandlisten]     distarch: x86_64
      2020-01-02T15:31:02.329+0800 I CONTROL  [initandlisten]     target_arch: x86_64
      2020-01-02T15:31:02.331+0800 I CONTROL  [initandlisten] options: { net: { port: 10086 }, storage: { dbPath: "D:\data\db" } }
      2020-01-02T15:31:02.333+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
      2020-01-02T15:31:02.442+0800 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
      2020-01-02T15:31:02.442+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory 'D:/data/db/diagnostic.data'
      2020-01-02T15:31:02.457+0800 I NETWORK  [initandlisten] waiting for connections on port 10086
      服务器启动成功,监听端口 10086 
      注意:服务器的窗口不能关闭,最大的端口后不能超过65535
      32位第一次需要输入mongod --storageEngine=mmapv1 ,第二次不需要
      
  • 将MongoDB设置为系统服务,可以自动后台启动,不需要每次手动启动

    • 1.在C盘data目录新建log文件夹,用来存放日志文件

    • 2.在安装目录(与bin文件夹同级,如D:\Program\MongoDB)下创建一个配置文件mongod.cfg

      systemLog:
          destination: file
          path: c:\data\log\mongod.log
      storage:
          dbPath: c:\data\db
      
    • 3.管理员模式打开控制台,并输入如下指令

      sc.exe create MongoDB binPath= "\"mongo bin路径\mongod.exe\" --service -config=\"mongo路径\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
      例如本机需要输入:
      C:\Windows\system32>sc.exe create MongoDB binPath= "\"D:\Program\MongoDB\bin\mongod.exe\" --service -config=\"D:\Program\MongoDB\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
      [SC] CreateService 成功
      
    • 4.启动服务

      • 任务管理器-服务-打开服务-搜索MongoDB并打开
    • 5.如果服务没有启动成功或有问题,需要删除服务并从第一步重新开始

      sc delete MongoDB
      

MongoDB的基本操作

基本概念

  • 数据库(database):数据库是一个仓库,在仓库中可以存放集合

  • 集合(collection):集合类似于数组,集合就是一组文档,集合中存储的文档可以是各种各样的,没有格式要求

  • 文档(document):文档数据库中的最小单位,类似于JS中的对象,在MongoDB中存储和操作的内容都是文档,文档的属性值是一个文档时,就称为内嵌文档

  • 多个文档组成集合,多个集合组成数据库。

  • 在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合

在这里插入图片描述

基本操作

MangoDB的图形化操作软件下载地址:

https://www.mongodbmanager.com/download

Shell命令
  • hlep :语法帮助
  • use :更改当前操作的数据库
  • show :根据当前参数显示列表
    • dbs :显示数据库列表
    • collections :显示当前数据库的集合
    • profile :显示时间超过1毫秒的system.profile条目
    • log[name] :显示登陆记忆的最后一段
  • exit :退出数据库
  • load(script) :加载js文件db.auth(username,password),在当前数据库做身份验证
  • db :查看当前所在的数据库
创建数据库
  • use 数据库名
    • 使用use时,如果数据库存在则会进入到相应的数据库,如果不存在则会自动创建
    • 一旦进入数据库,则可以使用db来引用当前库
  • db.collection.insert(文档)
    • 向集合中插入文档,如果集合不存在则创建
  • db.createCollection()
    • 创建一个新的集合
  • db.cllection.drop()
    • 删除集合

添加文档

db..insert(文档对象)

  • insert()可以用于向集合中添加一个或多个文档,可以传递一个对象,或一个数组(多个文档)
  • 可以将对象或数组中的对象添加进集合中
  • 添加时如果集合或数据库不存在,会自动创建
  • 插入的文档对象会默认添加_id属性,这个属性对应一个唯一的id,是文档的唯一标识。可以自己指定,这样数据库就不会自动添加了,如果自己指定 _id属性,也必须确保它的唯一性,建议默认。

db..insertOne(): 插入一个文档对象(3.2及以后版本可用)

db..insertMany(): 插入多个文档对象(3.2及以后的版本可用)

小案例
案例1:向user数据库,stus集合中插入一个新的学生对象{name:"Tom”,age:18,gender:"male"}
> use user
switched to db user
> db.stus.insert({name:"Tom",age:18,gender:"male"}); //添加1个文档,3.2及以上版本可以使用insertOne()方法
WriteResult({ "nInserted" : 1 })
> show dbs    // 查看所有数据库
local  0.000GB
user   0.000GB
> show collections // 查看所有集合
stus
> db.stus.find() // 查看集合内所有文档
{ "_id" : ObjectId("5e0dd4658d578ff6fa9f2820"), "name" : "Tom", "age" : 18, "gender" : "male" }
> db.stus.insert([
...     {name:"Jerry",age:19,gender:"male"},
...     {name:"Mike",age:20,gender:"male"},
...     {name:"Merry",age:18,gender:"female"}
... ]); //添加多个文档,3.2及以上版本可以使用insertMany()方法
BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 3,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})
> db.teacher.insertOne({name:"Chen",age:45,gender:"male"});
{
        "acknowledged" : true,
        "insertedId" : ObjectId("5e0dddb98d578ff6fa9f2824")
}
> db.teacher.insertMany([{name:"Wang",age:30,gender:"female"},{name:"Li",age:33,gender:"male"}])
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5e0dde228d578ff6fa9f2825"),
                ObjectId("5e0dde228d578ff6fa9f2826")
        ]
}
>

查询文档

db..find()

  • MongoDB使用find()来对文档进行查询
  • find()需要一个查询文档作为参数,如果不传该参数,则会返回集合中的所有元素
    • {属性:值} :查询属性时指定值的文档
  • 可以将查询条件以键值对的形式添加到查询文档中
  • MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档则可以通过 . 的形式类匹配
  • 如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号(综合案例13)
  • 返回的是一个数组

db..findOne()

  • 用来查询集合中符合条件的第一个文档

  • 返回的是一个文档对象

  • 查询条件

    $lt $lte  $gt  $gte  $ne  $or  $in
    $nin  $not  $exists $and
    
小案例
案例1:查询user数据库,teacher集合中的所有文档
> db.teacher.find();
{ "_id" : ObjectId("5e0dddb98d578ff6fa9f2824"), "name" : "Chen", "age" : 45, "gender" : "male" }
{ "_id" : ObjectId("5e0dde228d578ff6fa9f2825"), "name" : "Wang", "age" : 30, "gender" : "female" }
{ "_id" : ObjectId("5e0dde228d578ff6fa9f2826"), "name" : "Li", "age" : 30, "gender" : "male" }
案例2:查询teacher集合中name是Chen的文档
> db.teacher.find({name:"Chen"});
{ "_id" : ObjectId("5e0dddb98d578ff6fa9f2824"), "name" : "Chen", "age" : 45, "gender" : "male" }
案例3:查询teacher集合中age是30的第一个的文档
> db.teacher.findOne({age:30});
{
        "_id" : ObjectId("5e0dde228d578ff6fa9f2825"),
        "name" : "Wang",
        "age" : 30,
        "gender": "female"
}
案例4:查询teacher集合中的文档数量
> db.teacher.find().count();
3

查询条件$lt $lte
// $lt 小于  $lte 小于等于
// 综合案例 20
查询条件$gt $gte
// $gt 大于  $gte 大于等于
// 综合案例 19
查询条件$or
// $or 或者,满足符合条件的任一要求即可
// 综合案例 29

修改文档

db..update(查询条件,新对象)

  • 可以在update()中传递两个参数,一个旧文档,一个是新的文档,这样符合条件的文档将会被新文档所替换
  • update()的第三个参数,用来指定是否使用upsert,默认为false
  • update()的第四个参数,用来指定是否同时修改多个文档,默认为false
  • 使用update会将整个文档替换,但是大部分情况下是不需要这么做的,只需要对文档中的一部分进行更新时,可以使用更新修改器来进行(案例中会有介绍)

db..updateMany()

  • 同时修改多个符合条件的文档

db..updateOne()

  • 修改一个符合条件的文档

db..replaceOne()

  • 替换一个文档
小案例
案例1:修改teacher集合中,name为Wang的年龄为26
> db.teacher.update({name:"Wang"},{age:26});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.teacher.find({name:"Wang"});
>              //查找不到,因为旧的对象被{age:26}替换了
案例2:更新修改器 $set
// $set 用来指定一个字段的值,如果这个字段不存在,则创建它
> db.teacher.update({name:"Li"},{$set:{age:35}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.teacher.find({name:"Li"});
{ "_id" : ObjectId("5e0dde228d578ff6fa9f2826"), "name" : "Li", "age" : 35, "gender" : "male" }
案例2:更新修改器 $unset
// $unset 用来删除文档中一个不需要的字段,用法和set类似
> db.teacher.insert({name:"Wang",age:28,gender:"female",address:"Jiangsu"});
WriteResult({ "nInserted" : 1 })
> db.teacher.update({name:"Wang"},{$unset:{address:1}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.teacher.find({name:"Wang"});
{ "_id" : ObjectId("5e0de7e88d578ff6fa9f2827"), "name" : "Wang", "age" : 28, "gender" : "female" }
更新修改器 $inc
// $inc 用来增加已有键的值,或者该键不存在那就创建一个,$inc只能用于Number类型的值
// 综合案例 33
更新修改器 $push
// $push 向到数组中添加一个新的元素,元素可以重复
// 综合案例 14

更新修改器 $addToSet
// $addToSet 向数组中添加一个新元素,如果数组不存在则创建数组,如果数组中已经存在了该元素,则该元素不会被添加。元素不可以重复

删除文档

一般数据库中的数据不会被删除,所以删除的方法很少调用

一般会在数据中添加一个字段,来表示数据是否被删除

db..remove()

  • remove()可以用来移除指定文档对象
  • 方法接收一个查询文档作为参数,只有符合条件的文档才会被删除,默认会删除所有符合条件的文档
  • 第二个参数可以设置为只删除一个符合条件的文档,默认为false,删除全部符合条件的文档
  • 如果条件为空,则会删除集合下所有文档
  • 删除数据是永久的,不能撤销

db..deleteOne()

  • 删除单个文档

db..deleteMany()

  • 删除多个文档

db..drop()

  • 删除集合
小案例
案例1:删除teacher集合中age为26的文档
> db.teacher.remove({age:26})
WriteResult({ "nRemoved" : 1 })
> db.teacher.find()
{ "_id" : ObjectId("5e0dddb98d578ff6fa9f2824"), "name" : "Chen", "age" : 45, "gender" : "male" }
{ "_id" : ObjectId("5e0dde228d578ff6fa9f2826"), "name" : "Li", "age" : 35, "gender" : "male" }
{ "_id" : ObjectId("5e0de7e88d578ff6fa9f2827"), "name" : "Wang", "age" : 28, "gender" : "female" }
案例2:清空集合(性能较差)
> db.teacher.remove({});
WriteResult({ "nRemoved" : 3 })
> db.teacher.find();
案例3:删除teacher集合
> db.teacher.drop();
true
> show collections
stus
案例4:删除数据库
> db.dropDatabase();

综合案例

//1.进入my_test数据库
> use my_test;

//2.向数据库的user集合中插入一个文档	
> db.user.insert({name:"Wang"});

//3.查询user集合中的文档
> db.user.find();

//4.向数据库的user集合中插入一个文档	
> db.user.insert({name:"Zhang"})

//5.查询数据库user集合中的文档
> db.user.find();

//6.统计数据库user集合中的文档数量
> db.user.find().count();

//7.查询数据库user集合中name为Wang的文档
> db.user.find({name:"Wang"});

//8.向数据库user集合中的name为Wang的文档,添加一个age属性,属性值为26
> db.user.update({name:"Wang"},{age:26});

//9.使用{name:"Shang"} 替换 name 为 Zhang的文档
> db.user.replaceOne({name:"Zhang"},{$set:{name:"Shang"}});

//10.删除name为Wang的文档的age属性
> db.user.update({name:"Wang"},{$unset:{age:1}});

//11.向name为Wang的文档中,添加一个hobby:{cities:["beijing","shanghai","shenzhen"] , movies:["sanguo","hero"]}
> db.user.update({name:"Wang"},{$set:{hobby:city:["beijing","shanghai","shenzhen"],movies:["sanguo","hero"]}});

//12.向name为Shang的文档中,添加一个hobby:{movies:["A Chinese Odyssey","King of comedy"]}
> db.user.update({name:"Shang"},{$set:{hobby:{movies:["A Chinese Odyssey","King of comedy"]}}});

//13.查询喜欢电影hero的文档
> db.user.find("hobby.movies":"hero");

//14.向Shang中添加一个新的电影Interstellar
> db.user.update({name:"Shang"},{$push:{"hobby.movies":"Interstellar"}});

//15.删除喜欢beijing的用户
> db.user.remove({"hobby.cities":"beijing"});

//16.删除user集合
> db.user.remove({});//清空集合
> db.user.drop();//会删除数据库与集合

//17.向numbers中插入20000条数据 7.2s
for(var i=1;i<=20000;i++){
	db.numbers.insert({num:i})};
}
//优化:0.4s
var arr=[];
for(var i=1;i<=20000;i++){
	arr.push({num:i});
}
db.numbers.insert(arr);

//18.查询numbers中num为500的文档
> db.numbers.find({num:500});

//19.查询numbers中num大于5000的文档
> db.numbers.find({num:{$gt:500});

//20.查询numbers中num小于30的文档
> db.numbers.find({num:{$lt:30}});

//21.查询numbers中num大于40小于50的文档
> db.numbers.find({num:{$gt:40,$lt:50}});

//22.查询numbers中num大于19996的文档
> db.numbers.find({num:{$gt:19996}});

//23.查看numbers集合中的前10条数据
//limit()设置显示数据的上限
> db.numbers.find().limit(10);

//24.查看numbers集合中的第11条到20条数据
// skip()用于跳过指定数量的数据
// 分页:skip((页码-1)*每页显示的条数).skip(每页显示的条数);
// MongoDB会自动调整skip和limit的位置
> db.numbers.find().skip(10).limit(10);

//25.查看numbers集合中的第21条到30条数据
> db.numbers.find().skip(20).limit(10);

//26.将dept和emp集合导入到数据库中
图形化界面可以通过右键导入文件
//27.查询工资小于2000的员工
> db.emp.find({sal:{$lt:2000}});

//28.查询工资在1000-2000之间的员工
> db.emp.find({sal:{$lt:2000,$gt:1000}});

//29.查询工资小于1000或大于2500的员工
> db.emp.find({$or:[{sal:{$lt:1000}},{sal:{$gt:2000}}]});

//30.查询财务部的所有员工
// 获取财务部的编号
> var depno = db.dept.findOne({dname:"财务部"}).deptno;
// 查询财务部的所有员工
> db.emp.find({depno:depno});

//31.查询销售部的所有员工
// 获取销售部的编号
> var depno = db.dept.findOne({dname:"销售部"}).deptno;
// 查询销售部的所有员工
> db.emp.find({depno:depno});

//32.查询所有mgr为7698的所有员工
> db.emp.find({mgr:7698});

//33.为所有薪资低于1000的员工增加工资400元
> db.emp.updateMany({sal:{$lte:1000},{$inc:{sal:400}}})

暂时先这样吧,最近可能得忙着毕设,有些过错,这段时间过后我会好好弥补。

ind({sal:{ l t : 2000 , lt:2000, lt:2000,gt:1000}});

//29.查询工资小于1000或大于2500的员工

db.emp.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[{sal:{lt:1000}},{sal:{$gt:2000}}]});

//30.查询财务部的所有员工
// 获取财务部的编号

var depno = db.dept.findOne({dname:“财务部”}).deptno;
// 查询财务部的所有员工
db.emp.find({depno:depno});

//31.查询销售部的所有员工
// 获取销售部的编号

var depno = db.dept.findOne({dname:“销售部”}).deptno;
// 查询销售部的所有员工
db.emp.find({depno:depno});

//32.查询所有mgr为7698的所有员工

db.emp.find({mgr:7698});

//33.为所有薪资低于1000的员工增加工资400元

db.emp.updateMany({sal:{KaTeX parse error: Expected 'EOF', got '}' at position 9: lte:1000}̲,{inc:{sal:400}}})




暂时先这样吧,最近可能得忙着毕设,有些过错,这段时间过后我会好好弥补。

共勉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ruozhuliufeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值