操作命令与方法,需要先通过 mongo 命令进入交互模式中。或者使用 MongoDB 图形化操作软件中使用。

一、数据库常用命令与方法

1. 查看所有的数据库

  1. $ show dbs

注意:当某个数据库下没有数据时是 show 不出来的。

2. 创建/切换数据库

  1. $ use <数据库名>

注意:要切换的数据库不存在时,会先创建出来再切换过去。

3. 查看当前使用的数据库

  1. $ db
  2. $ db.getName()

注意:默认都会是 test
**

4. 显示当前数据库状态

  1. $ db.stats()

5. 删除当前数据库

  1. $ db.dropDatabase()

注意:通过 show dbs 查看是否还在

二、集合(collection)常用命令与方法

1. 创建集合

  1. $ db.createCollection('集合名字')

2. 查看当前数据库下所有的集合

  1. $ db.getCollectionNames()
  2. $ show collections

3. 删除集合

  1. $ db.集合名.drop()

三、文档(document)常用命令与方法

1. 添加

  • save
  1. $ db.<集合名>.save( document )
  • insert
  1. $ db.<集合名>.insert( docuemnt || [...document] )
  • insertOne
  1. $ db.<集合名>.insertOne( document )
  • insertMany
  1. $ db.<集合名>.insertMany([...document])

2. 修改

  • save

注意:
传入 _id 时,可实现修改
可以理解为直接覆盖之前的 document

  1. $ db.<集合名>.save( document )
  • update
  1. $ db.<集合名>.update(
  2. <query>,
  3. <update>,
  4. <options>
  5. }
  • query:查询条件
  • update:修改内容 !!!
  • options:一些额外选项配置
    • upsert:如果查询不到的时候是否直接增加这条记录。默认是 false
    • multi:是否更新多条,默认是 false
  • updateOne
  • updateMany

3. 删除

  • remove
  1. $ db.<集合名>.remove(
  2. <query>,
  3. <options>
  4. )
  • query:查询条件
  • options:配置项
    • justOne:是否只删除一条,默认是 false
  • deleteOne
  • deleteMany

4. 查询

  • 查询所有记录
  1. $ db.hello.find()
  • 查询 age = 22 的记录
  1. $ db.hello.find( { age: 22 } )
  • 查询 age > 22 的记录
  1. $ db.hello.find( { age: { $gt: 22 } } )
  • 查询 age < 22 的记录
  1. $ db.hello.find( { age: { $lt: 22 } } )
  • 查询 age >= 22 的记录
  1. $ db.hello.find( { age: { $gte: 22 } } )
  • 查询 age <= 22 的记录
  1. $ db.hello.find( { age: { $lte: 22 } } )
  • 查询 age != 22 的记录
  1. $ db.hello.find( { age: { $ne: 22 } } )
  • 查询 age >= 23 并且 age <= 26 的记录
  1. $ db.hello.find( { age: { $gte: 23, $lte: 26 } } )
  • 查询 age >= 50 或者 name = 林强 的记录
  1. $ db.hello.find( { $or: [ { age: { $gte: 50 } }, { name: '林强' } ] } )
  • 查询 name = 张三 并且 age = 20 的记录
  1. $ db.hello.find({ name: '张三', age: 20 })
  • 查询 name 中包含 mongo 的记录
  1. $ db.hello.find({ name: /mongo/ })
  • 查询 name 中以 张 开头的记录
  1. $ db.hello.find({ name: /^张/ })
  • 查询 name 中以 mongo 结尾的记录
  1. $ db.hello.find({ name: /mongo$/ })
  • 查询 指定 name、age 字段的记录
  1. # _id 会默认有
  2. $ db.hello.find({}, { name: 1, age: 1 })
  3. # 如果不想要 _id
  4. $ db.hello.find({}, { name: 1, age: 1, _id: 0 })
  5. # 如果只是排除掉一个或几个
  6. $ db.hello.find({}, { address: 0 })
  • 查询 指定 name、age 字段并且 age > 45 的记录
  1. $ db.hello.find({ age: { $gt: 45 } }, { name: 1, age: 1 })
  • 查询 按 age 升序的记录
  1. $ db.hello.find().sort({ age: 1 })
  • 查询 按 age 倒序的记录
  1. $ db.hello.find().sort({ age: -1 })
  • 查询 10 条之后的记录。(跳过前10条)
  1. $ db.hello.find().skip(10)
  • 查询 5 条记录。(限制条数)
  1. $ db.hello.find().limit(5)
  • 查询 10 条之后的 5 条记录
  1. $ db.hello.find().skip(10).limit(5)
  • 查询 第一条 记录
  1. $ db.hello.findOne()
  • 获取查询结果的个数
  1. $ db.hello.find().count()

四、参考链接