MongoDB是一种非关系型数据库,它以文档的形式存储数据,具有高性能、高可用性和高扩展性的特点。在MongoDB中,文档是由键值对组成的数据结构,类似于JSON对象。文档可以嵌套其他文档或数组,从而实现复杂的数据模型。
在本文中,我们将介绍MongoDB的基本操作,也就是增删改查(CRUD)操作。CRUD操作是数据库操作的核心,它们分别对应于创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。我们将使用MongoDB Shell来执行这些操作,MongoDB Shell是一个交互式的JavaScript环境,可以连接到MongoDB服务器并执行各种命令和脚本。
创建数据
要创建数据,我们需要使用db.collection.insertOne()或db.collection.insertMany()方法,分别用于插入单个文档或多个文档到指定的集合中。集合是MongoDB中存储文档的容器,类似于关系型数据库中的表。如果插入文档时指定的集合不存在,MongoDB会自动创建该集合。
例如,我们要向名为users的集合中插入两个用户信息的文档,可以执行以下命令:
执行成功后,MongoDB会返回一个结果对象,包含了插入的文档的_id字段。_id字段是每个文档的唯一标识符,如果插入文档时没有指定该字段,MongoDB会自动生成一个ObjectId类型的值。
读取数据
要读取数据,我们需要使用db.collection.find()方法,用于查询指定集合中符合条件的文档。该方法接受两个参数:第一个参数是一个查询过滤器对象,用于指定查询条件;第二个参数是一个投影对象,用于指定返回哪些字段。如果不指定这两个参数,默认返回集合中的所有文档和所有字段。
例如,我们要查询users集合中年龄大于等于26的用户,并只返回他们的名字和年龄字段,可以执行以下命令:
执行成功后,MongoDB会返回一个游标对象,可以遍历该对象来获取查询结果。在上面的命令中,我们使用了一些特殊的操作符来构造查询过滤器和投影对象。$gte表示大于等于;1表示包含该字段;0表示排除该字段。更多的操作符可以参考官方文档。
更新数据
要更新数据,我们需要使用db.collection.updateOne()或db.collection.updateMany()方法,分别用于更新单个文档或多个文档。这些方法接受三个参数:第一个参数是一个查询过滤器对象,用于指定要更新哪些文档;第二个参数是一个更新对象或替换对象,用于指定要更新或替换哪些字段;第三个参数是一个选项对象,用于指定一些额外的选项。
例如,我们要更新users集合中名字为Alice的用户的年龄,将其增加1岁,可以执行以下命令:
执行成功后,MongoDB会返回一个结果对象,包含了匹配的文档数、修改的文档数和其他信息。在上面的命令中,我们使用了$inc操作符来实现递增的效果。更多的操作符可以参考官方文档。
删除数据
要删除数据,我们需要使用db.collection.deleteOne()或db.collection.deleteMany()方法,分别用于删除单个文档或多个文档。这些方法接受两个参数:第一个参数是一个查询过滤器对象,用于指定要删除哪些文档;第二个参数是一个选项对象,用于指定一些额外的选项。