1、简单命令

#如果数据库不存在,则创建数据库,否则切换到指定数据库
use databaseName

# 显示当前数据库名
db

#列出所有数据库
show dbs 

#集合只有在内容插入后才会创建, 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
#插入一些文档时,如果集合不存在,会自动创建集合
#集合相当于一般数据库中的表
db.collectionName.insert({"name":"dfsdfdse"})

#删除当前数据库
db.dropDatabase()

# 删除集合
db.collectionName.drop()

#列出所有集合
show collections
show tables


#查看已插入文档
db.collectionName.find()

2、创建集合

# name: 要创建的集合名称
# options: 可选参数, 指定有关内存大小及索引的选项
db.createCollection(name, options)

db.createCollection("runoob")

db.createCollection("mycol", { capped: true, autoIndexId: true, size: 6142800, max : 10000 } )

options 可以是如下参数:

字段

类型

描述

capped

布尔

(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。

当该值为 true 时,必须指定 size 参数。

autoIndexId

布尔

3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。

size

数值

(可选)为固定集合指定一个最大值,即字节数。

如果 capped 为 true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

3、插入文档 更新文档 删除文档

文档相当于一般数据库的行row
文档插入会有一个默认主键 _id

###插入文档

#若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据
db.COLLECTION_NAME.insert(document)

#如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃
db.COLLECTION_NAME.save(document)

#3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。

#document:要写入的文档。
#writeConcern:写入策略,{ w: <value>, j: <boolean>, wtimeout: <number> }
#rdered:指定是否按顺序写入,默认 true,按顺序写入。

#向集合插入一个新文档
db.collection.insertOne(
   <document>,
   {
      writeConcern: <document>
   }
)

#向集合插入一个多个文档
db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>
   }
)


db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

#格式化显示
db.col.find().pretty()


### 更新文档

#query : update的查询条件,类似sql update查询内where后面的。
#update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
#upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
#multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
#writeConcern :可选,抛出异常的级别。
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)


db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})


### 删除文档

#query :(可选)删除的文档的条件。
#justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
#writeConcern :(可选)抛出异常的级别。

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
# 删除所有数据
db.col.remove({})