MongoDB实验——MongoDB shell操作

这篇具有很好参考价值的文章主要介绍了MongoDB实验——MongoDB shell操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MongoDB shell操作

实验原理

MongoDB shell是一个可执行文件,是MongoDB自带的一个交互式JavaScript shell,位于MongoDB安装路径下的/bin文件夹中。要启动MongoDB shell,可执行命令mongo。这将在控制台提示符中启动该shell,MongoDB shell提供了多个命令,下面列出了多个MongoDB shell命令及其用途。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

一、MongoDB shell脚本编程

1.使用命令行编程–eval执行JavaScript表达式

​ 参数–eval 接受一个 JavaScript 字符串或 JavaScript 文件,下面的命令启动 MongoDB shell 端,连接到数据库 test,对该数据库执行 db.getCollectionNames(),并以 JSON 字符串的方式输出结果。

步骤:

1)在 test 数据库中新建集合 student,并添加文档。命令如下:

MongoDB shell 端操作

>use test

>db.student.insert({sno:”001”,sname:”zhangsan”})

>exit

2)在控制台输入:

> mongo test --eval “printjson(db.getCollectionNames())”

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

2、在 MongoDB shell 中使用方法 load()来执行脚本

1)创建 shell_script.js 文件,该文件的路径为 D:\Junior Experiment\nosql\NoSQL guide book\test1document\shell_script.js 文件代码如下:

print("Hostname:");

print("\t"+hostname());

print("Date:");

print("\t"+Date());

db = connect("localhost/admin");

print("Admin Collections:");

printjson(db.getCollectionNames());

2)执行命令 mongo 文件地址+shell_script.js。命令运行结果如图所示。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

3、在命令 mongo 中指定要执行的 JavaScript 文件

​ MongoDB shell 加 载 并 执 行 脚 本 文 件 generate_words.js。 假设该文件的路径为

D:\JuniorExperiment\nosql\NoSQLguidebook\test1document\generate_words.js。

1)在 MongoDB shell 端输入 load(“D:\JuniorExperiment\nosql\NoSQLguidebook\test1document\generate_words.js”)(因此地址太长,我换了个文件路径)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

2)输入命令 show dbs,可以看到生成自定义数据库 words。

3)输入命令 use words,切换到 words 数据库。

4)输入命令 show collections,查看 words 数据库所包含的集合名称。命令执行结果如图所示。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

5)输入命令 db.word_stats.find().pretty(),查看 word_stats 集合中的所有文档。 命令执行结果如图所示。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

二、MongoDB shell操作

实验内容

练习在MongoDB中创建集合、删除集合、插入数据、更新数据、删除数据、查询数据等。

实验步骤

1.启动MongoDB shell。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

2.切换到admin数据库,使用root账户

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

给admin账户授权,出现连接失败Error: Authentication failed.。导致robomongo无法连接

解决方法是手动添加admin账户,创建成功后,再次db.auth(‘root’,‘strongs’),返回1

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

3.查看当前数据库状态

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

4.显示当前MongoDB版本

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

5.查询本地所有数据库名称

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

6.切换至mydb数据库,如果该数据库不存在,则会在插入第一条数据后创建该数据库。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

7.创建集合(集合相当于关系数据库的table)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

8.查询当前库下的所有集合(collection)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

9.查询当前库下的所有集合(collection)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

10.向集合mycollection中插入数据。(如果集合不存在,在插入数据时,MongDB会自动创建集合)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

11.添加数据使用insert方法,如果添加文档也可以使用先声明对象再添加,例如:

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

12.MongoDB会为每个插入的对象自动生成一个“_id”的值,在插入的时候也可以自己指定这个值,例如:

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

13.查询集合mycollection中的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB提供两种更新操作:update()和save()

①update()更新操作至少需要两个参数,它的语法为:db.collection.update( criteria, objNew, upsert, multi )

criteria:update的查询条件,类似sql update查询内where后面的值。

objNew:update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set 后面的值。

upsert:如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi:MongoDB默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

14.根据username修改salary,将username为’zhangyu’的数据,salary提升至600

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

15.将username为‘wangkaiyue’的数据age字段数值增加1

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

②save()的语法为:db.collection.save( x ),x就是要更新的对象,只能是单条记录。也可以用 Save执行插入操作,如果系统中没有相同的"_id"就执行插入操作,有的话就执行覆盖掉原来的值,执行更新操作。

16.更新_id为10000001的数据。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

17.再次查询mycollection集合,验证以上更新操作

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

18.删除username为‘yuhaowen’的数据。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

19.删除集合mycollection中全部数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

删除语法如下:

db.mycollection.remove(
			<query>,
			{
				justOne:<boolean>,
				writeConcern:<document>
			}
		)

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档。默认false

writeConcern :(可选)抛出异常的级别。

20.重命名集合,mycollection改为mcollection

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

21.删除集合mcollection

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

22.删除当前数据库

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

至此该实验shell操作结束!

三、MongDB 查询

实验内容

1.使用find或者findOne函数和查询文档

2.MongoDB 条件查询

3.MongoDB AND和OR查询

4.MongoDB $type 操作符

5.MongoDB 正则表达式

实验步骤

1.启动MongoDB shell

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

2.切换到admin数据库,使用root账户

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

3.插入实验数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

4.统计集合中数据条数

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

5.MongoDB中使用find来进行查询,查询就是返回一个集合中的子集,子集的范围从0到整个集

合。find的第一个参数决定了要返回哪些子集,其形式也是一个集合。

空的文档查询会匹配集合的全部内容,要是不指定查询文档,默认就是{}。

6.查询第一条数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

注意,findOne中的O要大写

7.查询第1条以后的所有数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

8.跳过第2条,查询后两条数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

这条命令可用于分页,Limit是pageSize,Skip是第几页*pageSize

9.限定查询3条数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

10.查询结果集的记录数。(查询salary小于300或大于400的个数)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

查询指定列的数据。可以通过find(或者findOne)的第二个参数来指定想要的键,这样做既会节

省传输的数据量,又能节省客户端解码文档的时间和内存消耗。

11.查询mycollection集合中,‘age’列和’salary‘列

1表示显示此列的意思,也可以用true表示

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

12.按salary升序排序。(将1换成-1就是降序排序)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

13.查询username列,并去掉重复数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB与RDBMS中Where语句的比较:

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

14.查询age小于13的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

15.查询age等于13的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

16.查询age大于15的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

17.查询不等于13的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB AND条件

MongoDB 的find() 方法可以传入多个键(key),每个键(key)以逗号隔开。语法格式如下:

db.col.find({key1:value1,key2:value2})

18.查询age等于20,salary等于200的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

19.查询age小于13,salary大于等于200的数据。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB OR条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

db.col.find(
	{
    	$or:[
            {key1:value1},{key2:value2}
        ]
    }
)

20.查询salary大于300或age小于等于13的数据。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

AND和OR联合使用

21.查询salary大于等于300时,username为’banma’或者age为8的数据,类似的常规 SQL 语句

为:where salary>=300 and (username = ‘banma’ or age = 8)

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB $type 操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

MongoDB 中可以使用的类型如下表所示:

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

22.获取mycollection集合中username为String类型的数据。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

MongoDB 正则表达式

正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

23.查询username中包含‘m’的数据。

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库

24.查询以z开头的数据

MongoDB实验——MongoDB shell操作,MongoDB,mongodb,数据库文章来源地址https://www.toymoban.com/news/detail-686838.html

到了这里,关于MongoDB实验——MongoDB shell操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Nodejs】操作mongodb数据库

    Mongoose是一个让我们可以通过Node来操作MongoDB的模块。 Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能。在大多数情况下,它被用来把结构化的模式应用到一个MongoDB集合,并提供了验证和类型转换等好处 mongoose中的对象

    2024年02月15日
    浏览(40)
  • Python 操作 MongoDB 数据库介绍

    MongoDB 是一款面向文档型的  NoSQL  数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以  K/V  形式存储,结构不固定,它的字段值可以包含其他文档、数组和文档数组等。其采用的  BSON (二进制 JSON )的数据结构,可以提高存储和扫描效率,但空

    2024年02月10日
    浏览(50)
  • redis及mongoDB数据库操作

    Redis作业 1、string类型数据的命令操作: (1) 设置键值: SET key value 例如: SET name \\\"John\\\" (2) 读取键值: GET key 例如: GET name (3) 数值类型自增1: INCR key 例如: INCR count (4) 数值类型自减1: DECR key 例如: DECR count (5) 查看值的长度: STRLEN key 例如: STRLEN name 2、lis

    2024年02月16日
    浏览(41)
  • redis数据库和MongoDB数据库基本操作

    (1) 设置键值 (2) 读取键值 (3) 数值类型自增1 (4) 数值类型自减1 (5) 查看值的长度 (1)对列表city插入元素:Shanghai Suzhou Hangzhou (2)将列表city里的头部的元素移除 (3) 对一个已存在的列表插入新元素 (4)查看list的值长度 (1) 设置一个hash表,order表里包括的

    2024年02月16日
    浏览(63)
  • MongoDB创建用户 、数据库、索引等基础操作

    MongoDB的权限认证是相对来说比较复杂的,不同的库创建后需要创建用户来管理。 本机中的MongoDB是docker 启动的,所以先进入docker的镜像中 这样就进入到了镜像MongoDB中,然后输入命令连接MongoDB数据库   注意用户名密码以及数据库名称  出现这个界面说明登录成功 接下来开始

    2024年02月14日
    浏览(47)
  • 分布式数据库NoSQL(二)——MongoDB 数据库基本操作

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的

    2024年02月06日
    浏览(52)
  • MongoDB常用的操作(服务器、数据库、集合)

    前面两篇已经介绍了MongoDB系统架构及其BSON数据类型。本文将讲解基本的MongoDB操作。 一、MongoDB启动命令 启动MongoDB 查看是否启动成功 重启MongoDB 关闭MongoDB 二、使用init命令操作MongoDB 启动MongoDB 查看是否启动成功 重启MongoDB 关闭MongoDB 三、启动mongodb客户端 查看该服务是否启动

    2024年02月07日
    浏览(64)
  • 数据库操作入门:PyMongo 和 MongoDB 的基本用法

    MongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展 Python需要一个MongoDB驱动程序来访问MongoDB数据库。在本教程中,我们将使用MongoDB驱动程序 \\\"PyMongo\\\"。建议使用PIP来安装 \\\"PyMongo\\\",确保您的Python环境已安装PIP。 在命令行中导航到PIP的

    2024年02月05日
    浏览(71)
  • Mongodb 以及 node.js中使用mongoose操作数据库

    目录 1、lowdb 2、Mongodb是什么? 3、Mongodb核心概念 4、Mongodb的下载与使用 5、数据库与集合命令 5.1、数据库命令 5.2、集合命令 5.3、文档命令 6、Mongoose 6.1、插入文档 6.2、字段类型 6.3、字段值验证 6.3.1、必填项 6.3.2、默认值 6.3.3、枚举值 6.3.4、唯一值 6.4、删除文档 6.5、更新文

    2024年02月11日
    浏览(45)
  • python常用库之pymongo库(Python操作Mongodb数据库)| Django项目连接MongoDB方式选型(MongoEngine)

    github:https://github.com/mongodb/mongo-python-driver PyMongo用于与Python与MongoDB数据库进行交互的工具。bson包是Python的BSON格式 的实现。Pymongo包是MongoDB的本地Python驱动程序。gridfs包是gridfs 的pymongo实现。 Pymongo支持MongoDB 3.6、4.0、4.2、4.4、5.0和6.0。 总结:PyMongo 是 MongoDB 与 Django 交互的标准

    2024年02月10日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包