MongoDB是一种开源的文档数据库,它使用了类似于JSON的BSON格式来存储不同类型的数据。作为一种 NoSQL 数据库,MongoDB 和传统关系型数据库有很大的不同,比如没有固定的数据模式、更高效的读写操作,以及更好的横向扩展性能。在本文中,我们将会学习 MongoDB 的一些基础命令,以及通过示例来演示它们的使用。
1. 连接 MongoDB 数据库
在开始操作 MongoDB 前,我们需要先连接到数据库。我们可以通过以下命令在 shell 中连接到 MongoDB:
mongo
如果 MongoDB 服务在本地运行,并使用默认端口 27017,则不需要提供任何参数。在连接成功后,会出现如下提示:
MongoDB shell version: x.x.x
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: x.x.x
>
现在我们已经连接到了 MongoDB 数据库,并处于 shell 提示符下。
2. 创建数据库
在 MongoDB 中,您不需要提前创建数据库,只需要在第一次执行插入操作时,指定新的数据库名称即可。例如,以下命令可以向名为 my_database 的数据库中插入一个新文档:
use my_database
db.my_collection.insertOne({ "name": "Taylor", "age": 28 })
注意,当您第一次向新的数据库插入数据时,MongoDB 才会创建这个数据库。很多人习惯使用命令 `show dbs` 来列出所有数据库,但是这个命令可能列出一些空数据库,因此不是个好的方式。
3. 查看数据库
要查看 MongoDB 当前正在使用的数据库,只需要执行 `db` 命令即可:
db
这个命令返回当前 shell 所使用的数据库。如果您想查看 MongoDB 中的所有数据库名称,执行以下命令:
show dbs
这个命令会列出所有可见的数据库及其大小(以 MB 为单位)。但是,请注意,这个列表不一定包含实际上已经存在的所有数据库,因为 MongoDB 只会在这些数据库中至少包含一个集合或者至少有一些数据插入时创建这些数据库。
4. 创建集合
在 MongoDB 中,集合类似于关系型数据库中的表。我们可以插入新的文档以及删除文档,还可以通过多种查询方式来访问文档。
要创建一个新的集合,可以使用 `createCollection()` 命令。以下命令创建名为 my_collection 的新集合:
db.createCollection("my_collection")
如果你想创建一个固定大小的集合,可以通过指定选项 `capped: true` 来实现。例如,以下命令会创建一个最大大小为 100MB,最多可以容纳 1000个文档的 my_collection 集合:
db.createCollection("my_collection", { capped: true, size: 100000000, max: 1000 })
5. 查询文档
现在,我们已经连接到 MongoDB 数据库,创建了一个新的数据库和一个新的集合。现在可以执行查询语句来检索我们的文档了。以下命令将检索名为 Taylor 的文档:
db.my_collection.findOne({ "name": "Taylor" })
在这个命令中,我们使用了 `findOne()` 函数来返回一个满足查询条件 `{'name':'Taylor'}` 的第一个文档。
如果要检索所有满足查询条件的文档,可以使用 `find()` 函数。以下命令将检索所有年龄大于 20 的文档:
db.my_collection.find({ "age": { $gt: 20 } })
在这个命令中,我们使用 `$gt` 运算符来查找所有属性 `age` 大于 20 的文档。如果您想查找所有属性 `age` 小于等于 20 的文档,可以使用 `$lte` 运算符。
6. 更新文档
在 MongoDB 中,可以使用 `update()` 命令来更新文档中的数据。以下命令会将年龄从 28 改为 29:
db.my_collection.updateOne({ "name": "Taylor" }, { $set: { "age": 29 } })
在上面命令中,我们使用了 `$set` 运算符来设置属性 `age` 的新值。我们还可以使用其他运算符,比如 `$inc` 运算符来增加或减少属性的值。
7. 删除文档
删除文档的方法和更新文档类似。以下命令将删除名为 Taylor 的文档:
db.my_collection.deleteOne({ "name": "Taylor" })
如果您想删除所有满足查询条件的文档,可以使用 `deleteMany()` 命令。
8. 关闭数据库连接
在完成所有操作后,可以通过以下命令来关闭与数据库的连接:
quit()
在本文中,我们已经学习了一些基本的 MongoDB 命令,并演示了它们的使用。除此之外还有很多更高级的命令和操作,比如索引、聚合管道等等。我们鼓励读者深入了解 MongoDB 的完整文档,并探索更多有关 NoSQL 数据库的内容。