cmd下操作mongodb

本文介绍了MongoDB非关系型数据库的基本概念,包括文档、集合和数据库,并详细讲解了如何在命令行界面执行创建、读取、更新和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb作为非关系型数据库(NoSql),它的可以由以下的结构组成,文档,集合,数据库。

其中mongodb的基本单元是文档,这类似于关系型数据库中的行,但从深处将,文档又比行要复杂的多。文档的格式类似于javascript中的json对象类型,如果你有 json的基础,mongodb对你来说,不会显得太陌生。文档是由多个键值有序的组合在一起

集合类似关系型数据库中的表,多个文档组成集合,但是与关系型数据库不同的是,文档中的键值对是可以随意排放的,也就是说,集合中的文档是可以任意去设置的,这取决于你的需要,不过相信应该没有人会将不同的数据放到一个集合里面。

最后呢,多个集合又组成了数据库。

OK,现在是不是很明白了,mongodb并不像想象中的那么难以理解,如果真是那样,开发者还开发mongodb做什么。

下面说一些cmd下对mongodb的操作:

首先要确保服务已经开启。


d:\mongodb\bin>mongo


现在就已经链接成功了,之后就是对mongodb进行的一系列操作。

查看数据库列表

> show dbs

而如果要选择数据库,就如同mysql一样。

> use db

在这里需要说的是,use既可以使用既有的数据库,又可以新建另一个名称的数据库,打个比方,如果我的mongodb实例中没有db的数据库,但是通过 use db,会新建一个名称为db的空白数据库。

在此通过db命令可以查看现在所选择的db

> db

> show collections
这条语句将显示出所选数据库的集合。


下面对news进行操作,下面两个是增加和查找

> db.news.insert({name:'1'})


> db.news.find({name:'1'})


如果这样看,可能会认为我的文档结构就是这样的,事实上不是的,下面我通过取出一条原先db集合中的文档

> db.news.findOne({name:{$ne:'1'}})


这说明了,集合中文档的结构是可以不一致的,但是不一致的结构会将你的网站,你的程序弄得乱糟糟的,最后你会不得不重新规划数据结构,如果因此而说mongodb处理能力弱,就真的是不好了。

上面说了最简单的增加和查找,现在说修改以及删除。

删除操作:

> db.news.remove({_id: ObjectId("53edd90a9c937c963d78d0e1")})
这是将news集合中_id 等于ObjectId("53edd90a9c937c963d78d0e1")的文档删除,这里的_id就如mysql数据库中的主键,但是他们的类型不同

由此可以看到,news集合中_id 等于ObjectId("53edd90a9c937c963d78d0e1")的文档已经被删除。这与mysql中的:‘ delete form 表名 where id = xxx ’  效果是一致的。

mongodb中的修改操作也不难使用,通过update进行实现,他需要至少两个参数,一个是更新的限制条件,另一个是新的文档。

我先增加一条文档

> post={'name':'tom',age:12}

> db.news.insert(post)

> db.news.find({age:12}).limit(1)


现在我插入了一条新的文档,但是现在呢,我需要给这个文档添加一个新的属性

> post.address='中国'

> post.love=['动画片','玩游戏']

> db.news.update({name:'tom',age:12},post)

mongodb的修改操作还可以通过与$set等实现

例如:我将tom的address改为美国

> db.news.update({name:'tom',age:12},{$set:{address:'美国'}})

好了,关于mongodb的增删改查就说这么多了,当然,mongodb还有很多聚合用法,这个在之后的文章中会提到。

注:文中有些截图与实际的数据不符,是因为文章发布后很多图片不显示,之后又补上的图片,但是原理是没有错的。


### 关于MongoDB命令行工具和命令的相关资料 MongoDB 提供了一个强大的交互式 JavaScript shell,允许用户执行各种操作来管理数据和服务器实例。以下是关于 MongoDB 命令行工具及其常用命令的详细介绍: #### 配置与安装 为了能够通过 `yum` 安装 MongoDB 并配置其包管理系统,可以创建 `/etc/yum.repos.d/mongodb-org-3.2.repo` 文件[^1]。此文件定义了 MongoDB 的存储库路径以及 GPG 密钥验证设置。 #### 启动 MongoDB Shell 可以通过以下方式启动 MongoDB Shell: ```bash D:\Java\MongoDB\Server\bin>mongo 127.0.0.1:27017 ``` 或者直接连接到特定数据库: ```bash D:\Java\MongoDB\Server\bin>mongo 127.0.0.1:27017/admin ``` 如果不想立即指定目标数据库,则可以在不带参数的情况下运行 `mongo` 命令并稍后切换至所需数据库[^3]: ```javascript conn = new Mongo("localhost:27017"); db = conn.getDB("test"); ``` #### 基础命令概览 一些常用的 MongoDB Shell 命令包括但不限于以下几个方面[^2][^3]: - **显示当前使用的数据库** ```javascript db; ``` - **列出所有可用数据库** ```javascript show dbs; ``` - **切换到另一个数据库** ```javascript use anotherDatabaseName; ``` - **查看集合列表** ```javascript show collections; ``` - **插入文档** ```javascript db.collectionName.insert({ key: "value" }); ``` - **查询文档** ```javascript db.collectionName.find(); ``` - **更新现有记录** ```javascript db.collectionName.update( { _id: ObjectId("...") }, { $set: { fieldToUpdate: newValue } } ); ``` - **删除文档** ```javascript db.collectionName.remove({}); ``` 这些只是冰山一角;实际应用中还有更多高级功能等待探索。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值