1. MongoDB是什么?
MongoDB是一个非关系型(NoSQL)的文档型数据库,采用分布式存储方式,面向集合(Collection)存储数据。MongoDB的文档数据格式非常灵活,支持嵌套文档和数组类型,具有优异的扩展性和高灵活性。
MongoDB提供了方便易用的命令行工具mongo,同时也提供了丰富的API供开发者使用。
2. MongoDB基本操作
2.1 连接MongoDB
连接MongoDB使用的命令为:mongo
命令。若MongoDB已经安装在本地,则无需指定连接地址和端口,直接运行mongo即可连接MongoDB。
mongo
若MongoDB安装在远程服务器,则需要使用以下命令连接MongoDB:
mongo host:port
其中host表示MongoDB所在的主机名或IP地址,port表示MongoDB使用的端口号。如果MongoDB使用的是默认端口号(27017),则可以省略port参数。
2.2 创建数据库
使用use
命令可以创建新的数据库。当MongoDB所连接的数据库不存在时,使用use
命令会自动创建新的数据库,并将该数据库设置为当前数据库。
use DATABASE_NAME
例如,创建名为mydb的数据库:
use mydb
2.3 删除数据库
使用dropDatabase()
命令可以删除数据库。在删除数据库之前,需要先切换到要删除的数据库。
use DATABASE_NAME
db.dropDatabase()
注意:切换到要删除的数据库后,执行dropDatabase()命令将会永久删除该数据库及其所有数据。请谨慎使用!
3. MongoDB集合操作
3.1 创建集合
创建集合使用的命令为db.createCollection(name, options)
,其中name表示集合名称,options表示集合的选项(可选参数)。
db.createCollection("mycollection")
db.createCollection("mycollection", { capped : true, size : 10000 })
上面的例子分别创建了名为mycollection的集合和名为mycollection的大小为10KB的固定集合(capped collection)。
3.2 查看集合
使用show collections
命令可以查看当前数据库中所有的集合。
show collections
3.3 删除集合
使用db.collectionName.drop()
命令可以删除集合,其中collectionName表示要删除的集合名称。
db.mycollection.drop()
注意:删除集合将会永久删除该集合及其所有数据。请谨慎使用!
4. MongoDB文档操作
4.1 插入文档
插入文档使用的命令为db.collection.insert(doc)
,其中collection表示要插入文档的集合名称,doc表示要插入的文档(一个JSON对象)。
db.mycollection.insert({
"title": "MongoDB Tutorial",
"description": "MongoDB is a NoSQL database",
"likes": 100,
"url": "http://www.example.com/mongodb/",
"by": "tutorials point"
})
4.2 查找文档
查找文档使用的命令为db.collection.find(query, projection)
,其中collection表示要查找文档的集合名称,query表示查询条件(一个JSON对象),projection表示要返回的字段(一个JSON对象)。
db.mycollection.find({
"likes": {$gt:50}
}, {
"title": 1,
"description": 1
})
上面的例子查询了likes大于50的文档,并返回了title和description字段。
4.3 更新文档
更新文档使用的命令为db.collection.update(query, update, options)
,其中collection表示要更新文档的集合名称,query表示查询条件(一个JSON对象),update表示更新内容(一个JSON对象),options表示更新选项(可选参数)。
db.mycollection.update({
"title": "MongoDB Tutorial"
},{
$set: {"likes":200}
})
上面的例子将title为“MongoDB Tutorial”的文档的likes字段更新为200。
4.4 删除文档
删除文档使用的命令为db.collection.remove(query)
,其中collection表示要删除文档的集合名称,query表示查询条件(一个JSON对象)。
db.mycollection.remove({
"title": "MongoDB Tutorial"
})
上面的例子将title为“MongoDB Tutorial”的文档从集合中删除。
5. MongoDB索引操作
5.1 创建索引
创建索引使用的命令为db.collection.createIndex(keys, options)
,其中collection表示要创建索引的集合名称,keys表示创建索引的字段(一个JSON对象),options表示索引选项(可选参数)。
db.mycollection.createIndex( { "title": 1 }, { unique: true } )
上面的例子对title字段创建了一个唯一索引。
5.2 查看索引
使用db.collection.getIndexes()
命令可以查看集合的所有索引。
db.mycollection.getIndexes()
5.3 删除索引
使用db.collection.dropIndex(keys)
命令可以删除索引,其中keys表示要删除索引的字段(一个JSON对象)。
db.mycollection.dropIndex( { "title": 1 } )
上面的例子删除了title字段的索引。
总结
本文介绍了MongoDB常用操作命令,包括数据库操作、集合操作、文档操作和索引操作。通过上述命令,可以实现对MongoDB的基本操作,从而高效地管理MongoDB数据库。