MongoDB是一种流行的NoSQL数据库,它以其高可扩展性、高性能、灵活性和易用性而闻名。MongoDB的存储结构是面向文档的,它使用BSON(二进制JSON)格式存储数据。MongoDB支持复制、故障转移和分片,使其非常适合大规模应用程序。
在MongoDB中,您可以使用命令行或MongoDB Shell来管理数据库。下面是一些常用的MongoDB命令行操作:
- 启动MongoDB:mongod
MongoDB需要一个运行在后台的守护进程来处理客户端请求和管理数据库。您可以使用mongod命令来启动MongoDB服务器。例如,要将MongoDB服务器的数据目录设置为“/data/db”,可以使用以下命令:
mongod --dbpath /data/db
- 连接MongoDB:mongo
要连接到MongoDB服务器并打开MongoDB Shell,您可以使用mongo命令。例如,要连接到运行在本地计算机上的MongoDB服务器,可以使用以下命令:
mongo
- 切换数据库:use
MongoDB支持多个数据库,您可以使用use命令来更改当前数据库。例如,要切换到名为“mydb”的数据库,可以使用以下命令:
use mydb
如果数据库不存在,则MongoDB将自动创建该数据库。
- 显示当前所在数据库:db
使用db命令可以显示当前正在使用的数据库。例如,如果当前正在使用名为“mydb”的数据库,则可以使用以下命令:
db
- 显示所有数据库:show dbs
MongoDB支持多个数据库,您可以使用show dbs命令来显示所有可用的数据库。例如,要显示所有可用的数据库,可以使用以下命令:
show dbs
此命令将返回一个包含所有数据库名称和它们的大小的列表。请注意,有些数据库可能没有任何数据,因此它们的大小为0。
- 创建集合:db.createCollection(
, { })
使用此命令可以创建一个集合。在选项参数中,您可以设置以下内容:
- capped: 如果为true,则集合是固定大小的,当集合达到其最大大小时,最早的文档将被删除。
- size: 如果capped为true,则可以设置集合的最大大小(以字节为单位)。
- max: 如果capped为true,则可以设置集合中文档的最大数量。
例如,要创建一个名为“users”的集合,并将其大小限制为10000字节,可以使用以下命令:
db.createCollection("users", {capped: true, size: 10000})
-
显示所有集合:show collections
此命令将显示当前数据库中的所有集合。 -
插入文档:db.
.insert( , { })
使用此命令可以向指定的集合中插入一个文档。在选项参数中,您可以设置以下内容:
- writeConcern: 写入确认级别。
- ordered: 如果为true,则按顺序插入文档。
例如,要向名为“users”的集合中插入一个文档,可以使用以下命令:
db.users.insert({name: "John", age: 30})
- 查找文档:db.
.find( , { })
使用此命令可以查找符合查询条件的文档。查询条件是一个JSON对象,可以使用比较运算符和逻辑运算符。在投影参数中,您可以指定要返回的字段。
例如,要查找名为“John”的用户,可以使用以下命令:
db.users.find({name: "John"})
- 更新文档:db.
.update( , , { })
使用此命令可以更新符合查询条件的文档。查询条件是一个JSON对象,可以使用比较运算符和逻辑运算符。更新是一个JSON对象,可以使用一些操作符来更新文档。
例如,要将名为“John”的用户的年龄更新为35岁,可以使用以下命令:
db.users.update({name: "John"}, {$set: {age: 35}})
- 删除文档:db.
.remove( , { })
使用此命令可以删除符合查询条件的文档。查询条件是一个JSON对象,可以使用比较运算符和逻辑运算符。
例如,要删除名为“John”的用户,可以使用以下命令:
db.users.remove({name: "John"})
- 添加索引:db.
.createIndex( , { })
使用此命令可以向指定的集合中添加一个索引。索引可以提高查询性能。在选项参数中,您可以设置以下内容:
- unique: 如果为true,则索引中的值必须是唯一的。
- sparse: 如果为true,则只有在文档中存在该字段时索引才会生效。
例如,要在名为“users”的集合中添加一个基于“name”字段的索引,可以使用以下命令:
db.users.createIndex({name: 1})
- 删除索引:db.
.dropIndex( )
使用此命令可以从指定的集合中删除一个索引。索引可以使用名称或键指定。
例如,要从名为“users”的集合中删除基于“name”字段的索引,可以使用以下命令:
db.users.dropIndex({name: 1})
- 退出MongoDB:exit
使用此命令可以退出MongoDB Shell。