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({})