MongoDB是一种非关系型数据库,它使用JSON格式的文档来存储数据,具有高性能、高可用性和高扩展性的特点。MongoDB提供了多种方式来与数据库进行交互,其中之一就是使用命令行工具。在本文中,我们将介绍如何使用MongoDB命令行工具进行数据库的基本操作,包括连接、创建、查询、更新、删除等。
连接MongoDB数据库
要使用MongoDB命令行工具,首先需要安装MongoDB数据库,并启动mongod服务。然后,在另一个终端窗口中,输入mongo命令来启动MongoDB shell,这是一个交互式的JavaScript环境,可以执行MongoDB的各种操作。如果没有指定参数,mongo命令默认连接到本地主机上的test数据库。你也可以通过指定参数来连接到其他主机或端口上的数据库,例如:
这个命令会连接到192.168.1.100主机上的27017端口上的mydb数据库。如果数据库不存在,MongoDB会在第一次插入数据时自动创建它。
创建集合和文档
在MongoDB中,数据是以文档的形式存储在集合中的。文档是一种类似于JSON的数据结构,由键值对组成。集合是一组相关文档的容器,类似于关系型数据库中的表。要创建一个集合,可以使用db.createCollection()方法,例如:
这个命令会在当前数据库中创建一个名为users的集合。如果没有指定集合名,MongoDB会使用默认的集合名col。要查看当前数据库中有哪些集合,可以使用show collections命令。
要向集合中插入文档,可以使用db.collection.insert()方法,例如:
这个命令会向users集合中插入一个包含三个字段的文档。如果没有指定_id字段,MongoDB会自动为每个文档生成一个唯一的_id值。要查看集合中有哪些文档,可以使用db.collection.find()方法,例如:
这个命令会返回users集合中所有的文档。如果想以更美观的格式显示结果,可以在find()方法后加上.pretty()方法,例如:
查询文档
要从集合中查询符合条件的文档,可以在find()方法中指定查询条件,例如:
这个命令会返回users集合中年龄为20的所有文档。查询条件可以使用各种比较运算符和逻辑运算符来组合,例如:
这个命令会返回users集合中年龄大于18且小于30的所有文档。$gt表示大于,$lt表示小于。其他常用的比较运算符有$gte(大于等于)、$lte(小于等于)、$ne(不等于)、$in(在某个范围内)、$nin(不在某个范围内)等。逻辑运算符有$and(与)、$or(或)、$not(非)、$nor(既不)等。例如:
这个命令会返回users集合中名字为Alice或者年龄为20的所有文档。
要从查询结果中只返回部分字段,可以在find()方法中指定第二个参数,用0或1来表示是否返回该字段,例如:
这个命令会返回users集合中所有文档的name和email字段,不返回其他字段。_id字段默认总是返回,除非显式指定为0,例如:
这个命令会返回users集合中所有文档的name和email字段,不返回_id字段。
要对查询结果进行排序,可以在find()方法后加上.sort()方法,指定排序的字段和顺序,例如:
这个命令会按照年龄升序返回users集合中所有的文档。1表示升序,-1表示降序。
要对查询结果进行分页,可以在find()方法后加上.skip()方法和.limit()方法,指定跳过的文档数和返回的文档数,例如:
这个命令会跳过前10个文档,返回后5个文档。
更新文档
要更新集合中的文档,可以使用db.collection.update()方法,指定查询条件和更新操作,例如:
这个命令会将users集合中名字为Alice的文档的年龄更新为21。$set是一个更新操作符,表示设置某个字段的值。