MongoDB:基础语句及练习

一 基本命令

1.显示所有数据库

show dbs show databases

2.进入某个数据库

use 数据库名称

3.显示当前数据库信息

db.stats()

4.显示当前数据库的所有集合

show collections

5.显示当前数据库

db

在 MongoDB 里,数据库和集合都不用手动创建: 当使用“use 数据库名称”命令时,如果数据库不存在,会自动创建数据库 当使用“db..insert()”命令插入文档时,如果集合不存在,会自动创建集合 (也可以用命令创建集合,格式为 db.createCollection("集合名称"))

6.集合的删除

db..drop()

7.删除当前数据库

db.dropDatabase()

二 CRUD(增删改查)操作

1.插入文档

db..insert(document)

  • 插入一个或多个文档(文档要用大括号括起来,如果要插入多个文档,要使用数组用[]括起来)
db.s.insert({sno:"1001",sname:"张三"})

db.s.insert([{sno:"1002",sname:"李四"},{sno:"1003",sname:"王五",ssex:"男"}])

 注:当向集合中插入文档时,如果没有给文档指定_id 属性,则数据库会自动为文档添 加_id,该属性用来作为文档的唯一标识。也可以自己指定_id 列的值,但必须确保它的唯一性。

db.s.insert({_id:"hello",sno:"1004",sname:"王大力"})) 
db.insertOne(document) --插入一个文档 
例:db.s.insertOne({sno:"1005",sname:"李浩 "})
db..insertMany(document array) --插入多个文档 
例:db.s.insertMany([{sno:"1006",sname:"李四四"},{sno:"1007",sname:"王五五",ssex:" 男"}]

2.查询

db.find()

  • 不写或者{}空文档:查询集合中所有的文档
  • 可以接收一个对象作为条件参数
  • {属性:值} 查询属性值是指定值的文档 例:db.s.find({sno:"1002"})

3.多条件查询

  • 与的关系
db.s.find({sname:"zhangsan",sage:20}) 
db.s.find({$and:[{sage:{$gte:18}},{sage:{$lte:20}}]})
  • 或的关系
db.s.find({$or:[{sname:"zhangsan"},{sage:18}]})
  • $in 运算符
db.stu.find({sname:{$in:["zhangsan","John"]}})
  • find()返回的是一个数组
 db.s.find({sage:11})[0] --返回满足条件的第一个文档  

 4.特殊查询

db.find().count() --统计查询结果的数量

db.findOne()  --查询满足条件的第一个文档

db. find({sage:null}) --查找 null 值字段

-文档查询结果以树形结构显示

db.find().pretty()

--如果查询结果只显示部分文档内容,可以设置第二个参数,将需要显示的字段对应值设 置为 1

例:db.s5.find({},{sno:1,sname:1})  --只显示 sno 和 sname 两个字段

--如果只在结果中显示具体的内容字段,不包含_id 字段,可以在第二个参数把_id 对应值 设为 0

例:db.s5.find({},{_id:0})

5.修改

db.collection.update(查询条件,新对象,{ upsert:, multi:})

  • upsert:如果不存在查询条件查出的记录,是否插入一条数据,默认是 false
  • multi:是否只修改查询条件查出的第一条记录,默认是 false

update()默认情况会使用新对象替换旧对象

db.s.update({sname:"zhangsan"},{sage:20}) --文档只剩下 sage 属性

如果需要修改指定的属性,而不是替换,需要使用修改操作符完成:

$set 可以修改文档中的指定属性(可以修改或添加属性)

db.s.update({sname:"lisi"},{$set:{sage:20}}) db.s.update({sno:"1001"},{$set:{sage:44,addr:"hebei"}})

$unset 用来删除文档指定的属性

db.s.update({sname:"wangwu"},{$unset:{sage:9}})

update()默认修改符合条件的第一个文档,默认和 updateOne 功能相同。如果要修改所有 文档,需要设置第 multi 参数

db.s.update({sname:"lisi"},{$set:{sage:10}},{multi:true}) upsert

列改名

db.s.update({},{$rename:{"address":"addr"}},{multi:true})

$inc 与$mul

-- 所有人的年龄加 1

db.s.update({},{$inc:{sage:1}},{multi:true})

-- 所有人的年龄乘 2
db.s.update({},{$mul:{sage:2}},{multi:true})

6.删除

db.collection.remove()

remove()删除满足条件的文档,条件的传递方式和 find()一样,默认删除的是所有符合条件的文档

db.s.remove({sname:"lisi"})

如果想删除满足条件的第一个文档,需要设置第二个参数:

db.s.remove({sage:20},true)

如果要删除集合中所有的文档,传递的参数要为一个空对象{},而且不能省略 :

db.s.remove({})

三 补充

复制集合 s,新生成集合为 s2

b.s.find({}).forEach(function(x){db.s2.insert(x)}) --复制集合 s,新生成的集合为 s2

--导入导出 json 文件 mongoe

xport -d test -c s -o d:\s.json--导出 test 数据库的集合 s 中的数据到 s.json 文件

mongoimport -d test -c s d:\s.json --把 s.json 文件中的数据库导入到 test 数据库的 s5 集合中

(参数说明:-d 指明使用的库 -c 指明要导出的表 -o 指明要导出的文件名及路径)

--导入导出 csv 文件

mongoexport -d test -c s -o d:\s.csv --type csv -f sno,sname,ssex,sage

mongoimport -d test -c s3 --type csv --file d:\s.csv –headerline

相关推荐

  1. MongoDB基础语句练习

    2024-07-12 06:30:03       27 阅读
  2. MongoDB 基本查询语句

    2024-07-12 06:30:03       21 阅读
  3. C语言基础练习——Day04

    2024-07-12 06:30:03       33 阅读
  4. C语言基础练习——Day12

    2024-07-12 06:30:03       45 阅读
  5. C语言基础练习——Day13

    2024-07-12 06:30:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 06:30:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 06:30:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 06:30:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 06:30:03       69 阅读

热门阅读

  1. Xcode本地化全攻略:打造多语言应用的秘诀

    2024-07-12 06:30:03       25 阅读
  2. C++ const 关键字详解

    2024-07-12 06:30:03       27 阅读
  3. 东方博宜1627 - 暑期的旅游计划(2)

    2024-07-12 06:30:03       26 阅读
  4. 防火、防盗、防windows defender

    2024-07-12 06:30:03       27 阅读
  5. Linux 之前的 Unix 桌面沉浮启示录

    2024-07-12 06:30:03       29 阅读
  6. 从 Github 安装 R packages 不完全指南

    2024-07-12 06:30:03       23 阅读
  7. 【面试题】MySQL(第四篇)

    2024-07-12 06:30:03       26 阅读
  8. C++学习笔记

    2024-07-12 06:30:03       27 阅读
  9. Spring AOP 使用方式

    2024-07-12 06:30:03       29 阅读
  10. filex容错模块(掉电安全)

    2024-07-12 06:30:03       27 阅读
  11. HashMap源码解析

    2024-07-12 06:30:03       29 阅读
  12. 开发一个HTTP模块

    2024-07-12 06:30:03       22 阅读