首页 > 数据库 >MongoDB基本使用

MongoDB基本使用

时间:2022-10-08 12:10:17浏览次数:74  
标签:基本 MongoDB 数据库 db collection 文档 使用 集合


MongoDB基本使用

1.创建数据库

MongoDB 创建数据库的语法格式如下:

use DATABASE_NAME

如果数据库不存在,则创建数据库,否则切换到指定数据库。

实例

以下实例我们创建了数据库 youj:

> use youj
switched to db youj
> db
youj
>

如果你想查看所有数据库,可以使用 show dbs 命令:

> show dbs
local 0.078GB
test 0.078GB
>

可以看到,我们刚创建的数据库 youj 并不在数据库的列表中, 要显示它,我们需要向 youj 数据库插入一些数据。

> db.youj.insert({"name":"W3Cschool教程"})
WriteResult({ "nInserted" : 1 })
> show dbs
local 0.078GB
youj 0.078GB
test 0.078GB
>

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。


2.删除数据库

db.dropDatabase()

删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。

删除集合

集合删除语法格式如下:

db.collection.drop()

3.创建集合

MongoDB 中使用 createCollection() 方法来创建集合。

语法格式:

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

MongoDB基本使用_数据

在 test 数据库中创建 runoob 集合:

> use test
switched to db test
> db.createCollection("runoob")
{ "ok" : 1 }
>

如果要查看已有集合,可以使用 show collectionsshow tables 命令:

> show collections
runoob
system.indexes

下面是带有几个关键参数的 createCollection() 的用法:

创建固定集合 mycol,整个集合空间大小 6142800 B, 文档最大个数为 10000 个。

> db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
6142800, max : 10000 } )
{ "ok" : 1 }
>

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

> db.mycol2.insert({"name" : "菜鸟教程"})
> show collections
mycol2
...

4.删除集合

db.collection.drop()

参数说明:

返回值

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

5.插入文档

本章节中我们将向大家介绍如何将数据插入到MongoDB的集合中。

文档的数据结构和JSON基本一样。

所有存储在集合中的数据都是BSON格式。

BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)

db.COLLECTION_NAME.save(document)
  • save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用db.collection.insertOne()db.collection.replaceOne()来代替。
  • insert(): 若插入的数据主键已经存在,则会抛org.springframework.dao.DuplicateKeyException异常,提示主键重复,不保存当前数据。

3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。

db.collection.insertOne() 用于向集合插入一个新文档,语法格式如下:

db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)

db.collection.insertMany() 用于向集合插入一个多个文档,语法格式如下:

db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)

参数说明:

  • document:要写入的文档。
  • writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
  • ordered:指定是否按顺序写入,默认 true,按顺序写入。

6.更新文档

MongoDB 使用 update()save() 方法来更新集合中的文档。

​传送门1​


7.删除文档

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

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

8.查询文档

​传送门1​

9.条件操作符和类型操作符

MongoDB基本使用_mongodb_02

如果想获取 “col” 集合中 title 为 String 的数据,你可以使用以下命令:

db.col.find({"title" : {$type : 2}})

db.col.find({"title" : {$type : 'string'}})

10.分页查询

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

语法

skip() 方法脚本语法格式如下:

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

实例

以下实例只会显示第二条文档数据

>db.col.find({},{"title":1,_id:0}).limit(1).skip(1)
{ "title" : "Java 教程" }
>

11.排序

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

语法

sort()方法基本语法如下所示:

>db.COLLECTION_NAME.find().sort({KEY:1})

12.索引

语法

createIndex()方法基本语法格式如下所示:

>db.collection.createIndex(keys, options)

语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。

实例

>db.col.createIndex({"title":1})
>

createIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)。

>db.col.createIndex({"title":1,"description":-1})

13.参考文章

​传送门1​

​传送门2​

​视频​


标签:基本,MongoDB,数据库,db,collection,文档,使用,集合
From: https://blog.51cto.com/u_15326986/5737129

相关文章

  • Consul的HTTP API和使用方法
    Consul支持基础结构的服务注册和发现(称为内部服务),也支持外部服务(第三方SAAS服务以及无法直接运行Consul代理的其它环境,例如redis)。直接使用sudoapt-getinstallc......
  • consul安装及使用
    Consul是HashiCorp公司的一个用于实现分布式系统的服务发现与配置工具。Consul内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方......
  • 什么时候使用websocket(即时通讯)
    用于多个用户相互交流用于展示服务器端经常变动的数据websocket和http的区别http只能是客户端向服务器发出请求,服务器返回查询结果。HTTP协议做不到服务器主动向客户......
  • Mastercam9.1使用技巧及常见问题
    mastercam9.1中文版使用技巧mastercam9.1快捷键Alt+2设置系统颜色F2缩小Alt+3设置系统图层F3重画Alt+4设置限定图层F4分析Alt+5......
  • Java--匿名内部类--使用场景/实例
    原文网址:Java--匿名内部类--使用场景/实例_IT利刃出鞘的博客-CSDN博客简介    本文用示例介绍Java中匿名内部类的一些使用场景。    这些场景包括:多......
  • 关于Object.keys()和Object.values()的使用
    关于Object.keys()和Object.values()的使用1.关于Object.keys()1)处理对象,返回可枚举的所有可枚举属性的字符串数组letperson={name:'张三',age:25,address:'深圳'......
  • vCenter 6.7 使用Grafana监控失败的处理
    背景国庆处理的vCenter监控.老的vCenter6.0的平台很正常.但是新的vCenter6.7就经常出现断连的情况.花费了快一个多小时才搞定,这里记录一下.问题现象vCenter......
  • MongoDB Could not find host matching read preference { mode: “primary” } 问题
       导致原因:集群有12w+的collection需要尽快解决collection过多的问题方可解决......
  • ABAP 选择屏幕内的类型以及使用
    选择屏幕组件主要记录了ABAP编程中选择屏幕常用的组件选择框范围选择框radio单选check选择单行展现配合radio和check使用较多下拉框自定义下拉框按钮文件框文......
  • Flutter(四):Flutter 语言 Dart基础使用
    一、变量和常量变量vara=1;varstr='abc';常量constPI=3.14;不可变对象finalPI=3.14;finalTIME=newDateTime.now()二、流程控制语句if(year......