mongodb 数据库管理(数据库、集合、文档)

这篇具有很好参考价值的文章主要介绍了mongodb 数据库管理(数据库、集合、文档)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、数据库操作

1、创建数据库

2、删除数据库

二、集合操作

1、创建集合

2、删除集合

三、文档操作

1、创建文档

2、 插入文档

3、查看文档

4、更新文档

1)update() 方法

2)replace() 方法


一、数据库操作

1、创建数据库

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

use DATABASE_NAME

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

> show dbs;  
  admin  0.000GB 
  config 0.000GB  
  local 0.000GB  
  mytest 0.000GB  
  
> use test01  
switched to db test01  
​
> db  
test01  
​
> show dbs;  
  admin  0.000GB 
  config 0.000GB  
  local 0.000GB  
  mytest 0.000GB  

数据库创建之后,如果要显示出来,需要插入数据,如下:

test01> db.test01.insert({"name":"zhangsan"});
{
  acknowledged: true,
  insertedIds: { '0': ObjectId("64e0919af39cec8c5fc1dec8") }
}
test01> show dbs
admin   40.00 KiB
config  72.00 KiB
local   72.00 KiB
test01  40.00 KiB

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

2、删除数据库

MongoDB 删除数据库的语法格式如下:

  db.dropDatabase()  

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

  > db
  test01  
  > db.dropDatabase()  
  { "dropped" :  "test01", "ok" : 1 }  
  > show dbs;  
  admin  0.000GB
  config 0.000GB  
  local 0.000GB  
  mytest 0.000GB  

二、集合操作

1、创建集合

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

语法格式:

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称

  • options: 可选参数, 指定有关内存大小及索引的选项

    选项可以是以下参数

mongodb 数据库管理(数据库、集合、文档),DateBase,数据库,mongodb,oracle

在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段:

 #创建集合 test01  
 > db.createCollection("test01")  
 { "ok" : 1 }  
 
  #查看集合  
 > show tables;  
 test01  

 > show collections  
 test01  

 > db.getCollectionNames();  
 [ "test01" ]  

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

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

test> db.createCollection("mytest01",{capped:  true,size:6142800,max:10000})
{ ok: 1 }
test> show tables;
mytest
mytest01

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

test01> db.mytest02.insert({"name02":"openlab"})
{
  acknowledged: true,
  insertedIds: { '0': ObjectId("64e0939bf39cec8c5fc1dec9") }
}
test01> show tables;
mytest02
test01

2、删除集合

MongoDB 中使用 drop() 方法来删除集合。 语法格式:

  db.collection.drop()  

返回值

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。 在数据库 mydb 中,我们可以先通过 show collections 命令查看已存在的集合:

  > db  
  test  
  > show tables;  
  mytest  
  mytest01  
  mytest02  

  > db.mytest.drop()  
  true  
  > show tables;  
  mytest01  
  mytest02  

三、文档操作

文档的数据结构和 JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。

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

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

 db.collection.insert(document)  
 db.collection.insertOne()  
 db.collection.insertMany()  

insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保 存当前数据。

1、创建文档

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,按顺序写入。

    在 test 数据库中创建集合 col,包含如下文档,如果没有该集合,则创建:

#创建集合并插入文档  
test01> use test
switched to db test
test> db.col.insert({title:'MongoDB',
... description:'MongoDB是一个nosql数据库',
... by:'openlab',
... url:'http://www.xiaooupeng.com',
... tags:['mongodb','database','nosql'],
... likes:100
... })
{
  acknowledged: true,
  insertedIds: { '0': ObjectId("64e0948ff39cec8c5fc1deca") }
}

 #查看该集合  
test> db.col.find()
[
  {
    _id: ObjectId("64e0948ff39cec8c5fc1deca"),
    title: 'MongoDB',
    description: 'MongoDB是一个nosql数据库',
    by: 'openlab',
    url: 'http://www.xiaooupeng.com',
    tags: [ 'mongodb', 'database', 'nosql' ],
    likes: 100
  }
]
 先创建变量  
test> document=({title:'MongoDB',
... description:'MongoDB是一个nosql数据库',
... by:'openlab',
... url:'http://www.xiaooupeng.com',
... tags: [ 'mongodb', 'database', 'nosql' ],
... likes: 100
... })

  执行后输出如下:  
{
  title: 'MongoDB',
  description: 'MongoDB是一个nosql数据库',
  by: 'openlab',
  url: 'http://www.xiaooupeng.com',
  tags: [ 'mongodb', 'database', 'nosql' ],
  likes: 100
}

2、 插入文档

db.collection.insertOne()  # 插入一个文档

db.collection.insertMany() # 插入多个文档

db.collection.insert()       # 插入:可以插入一个文档也可以插入多个文档: 多一个判断的步骤

test> db.co101.insert(document)
{
  acknowledged: true,
  insertedIds: { '0': ObjectId("64e0957af39cec8c5fc1decb") }
}

3、查看文档

1)

test> db.co101.find()
[
  {
    _id: ObjectId("64e0957af39cec8c5fc1decb"),
    title: 'MongoDB',
    description: 'MongoDB是一个nosql数据库',
    by: 'openlab',
    url: 'http://www.xiaooupeng.com',
    tags: [ 'mongodb', 'database', 'nosql' ],
    likes: 100
  }
]

2)

test> var document=db.collection.insertOne({"test01":123})
test> document
{
  acknowledged: true,
  insertedId: ObjectId("64e095dbf39cec8c5fc1decc")
}

3) 

test> var test02 =  db.coll02.insertMany([{"test02":02},{"test0202":0202}])

test> test02
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("64e09679f39cec8c5fc1decd"),
    '1': ObjectId("64e09679f39cec8c5fc1dece")
  }
}

查询:

db.collection.find()

等值查询:

{field: value}

操作符

{field: {$operater1: value1}.... }

{ status: { $in: [ "A", "D" ] } }

比较

$eq

Matches values that are equal to a specified value.

$gt

Matches values that are greater than a specified value.

$gte

Matches values that are greater than or equal to a specified value.

$in

Matches any of the values specified in an array.

$lt

Matches values that are less than a specified value.

$lte

Matches values that are less than or equal to a specified value.

$ne

Matches all values that are not equal to a specified value.

$nin

Matches none of the values specified in an array.

逻辑

$and

{ $and: [ { status: "A" }, { qty: { $lt: 30 } } ] }

$or

{ $or: [ { status: "A" }, { qty: { $lt: 30 } } ] }

$nor

$not

元素

$exists

$type

# 正则表达式

$regex

{ <field>: { $regex: /pattern/, $options: '<options>' } }

{ <field>: { $regex: 'pattern', $options: '<options>' } }

{ <field>: { $regex: /pattern/<options> } }


4、更新文档

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

1)update() 方法

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(  
  <query>,  <update>,  
  {  
        upsert: <boolean>,  
        multi: <boolean>,  
        writeConcern: <document>  
  }  
  )  



db.inventory.updateOne(
   { item: "paper" }, # 查询条件
   {
     $set: { "size.uom": "cm", status: "P" }, # $set: 更新操作符
                                              # size.uom: cm , status: "P"
     $currentDate: { lastModified: true }
   }
)

参数说明:

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

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

  • upsert : 可选,这个参数的意思是,如果不存在 update 的记录,是否插入 objNew,true 为插入,默认是 false,不插入。

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

  • writeConcern :可选,抛出异常的级别。文章来源地址https://www.toymoban.com/news/detail-658923.html

#查看集合
test> db.co101.find()
[
  {
    _id: ObjectId("64e0957af39cec8c5fc1decb"),
    title: 'MongoDB',
    description: 'MongoDB是一个nosql数据库',
    by: 'openlab',
    url: 'http://www.xiaooupeng.com',
    tags: [ 'mongodb', 'database', 'nosql' ],
    likes: 100
  }
]

#更新集合
test> db.co101.update({"title"  : "MongoDB"},{$set:{"title" : "MongoDB_updat  e"}})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}

#查看更新后的集合  
#1)
test> db.co101.find()
[
  {
    _id: ObjectId("64e0957af39cec8c5fc1decb"),
    title: 'MongoDB_updat  e',
    description: 'MongoDB是一个nosql数据库',
    by: 'openlab',
    url: 'http://www.xiaooupeng.com',
    tags: [ 'mongodb', 'database', 'nosql' ],
    likes: 100
  }
]
#2)
test> db.co101.find().pretty()
[
  {
    _id: ObjectId("64e0957af39cec8c5fc1decb"),
    title: 'MongoDB_updat  e',
    description: 'MongoDB是一个nosql数据库',
    by: 'openlab',
    url: 'http://www.xiaooupeng.com',
    tags: [ 'mongodb', 'database', 'nosql' ],
    likes: 100
  }
]


#以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置  multi 参数为  true
test> db.co101.update({"title" :  "MongoDB"},{$set:{"title" : "MongoDB_updat  e"}},{multi:true})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 0,
  modifiedCount: 0,
  upsertedCount: 0
}

2)replace() 方法

db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)
test> db.col01.insertOne(
... {"name":"zhangsan"},
... {"age":22}
... )
{
  acknowledged: true,
  insertedId: ObjectId("64e0a0b7f39cec8c5fc1decf")
}

test> db.col01.find()
[ { _id: ObjectId("64e0a0b7f39cec8c5fc1decf"), name: 'zhangsan' } ]
test> db.col01.replaceOne({"name":"lisi"},{"age":23})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 0,
  modifiedCount: 0,
  upsertedCount: 0
}

test> db.col01.replaceOne({"name":"zhangsan"},{"name":"lisi"})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
test> db.col01.find()
[ { _id: ObjectId("64e0a0b7f39cec8c5fc1decf"), name: 'lisi' } ]
test>

到了这里,关于mongodb 数据库管理(数据库、集合、文档)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • MongoDB-数据库文档操作(1)

    MongoDB-数据库文档操作(1)

    任务描述 文档数据在 MongoDB 中的插入和更新。 相关知识 本文将向大家介绍文档数据在 MongoDB 中的基本操作。 文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 JSON 的一种二进制形式的存储格式,简称: Binary JSON 。 本文将教你掌握:

    2024年01月17日
    浏览(7)
  • 在Node.js中使用MongoDB连接数据库、创建集合

    在Node.js中使用MongoDB连接数据库、创建集合

    本文主要介绍在Node.js中使用MongoDB连接数据库、创建集合的方法。 在Node.js中使用MongoDB连接数据库有两种方式:使用原生驱动程序和使用Mongoose。 首先,需要安装 mongodb 模块。可以通过以下命令来安装: 安装完成后,可以在代码中引入模块: 接着,可以使用 MongoClient 来连接

    2024年02月04日
    浏览(29)
  • 【文档数据库】ES和MongoDB的对比

    【文档数据库】ES和MongoDB的对比

    目录 1.由文档存储牵出的问题 2.什么是MongoDB? 3.ES和MongoDB的对比 本文或者说关于mongodb的这个系列文章的源头: 前面我们聊过了分布式链路追踪系统,在基于日志实现的分布式链路追踪的方式seluth+zipkin中为了防止数据丢失,需要将数据持久化。我们给出的是持久化进mysql中的

    2024年01月19日
    浏览(5)
  • java springboot整合Mongodb 对数据库集合进行增删查改操作

    java springboot整合Mongodb 对数据库集合进行增删查改操作

    下面 我们就来做 springboot 整合Mongodb的工作 我们终端打开 Mongodb 安装目录下的bin目录 然后执行 启动服务 然后 打开我们的 springboot 项目 在pom.xml 文件中 导入坐标 有了依赖之后 就还差配置 打开项目中的 application 配置文件 我这里用的 yml 格式 我们在上面 打个 mong 它就会弹出

    2024年01月18日
    浏览(9)
  • 数据库信息速递  MONGODB 6.0 的新特性,更多的查询函数,加密查询,与时序数据集合 (译)...

    数据库信息速递 MONGODB 6.0 的新特性,更多的查询函数,加密查询,与时序数据集合 (译)...

    开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共1000人左右 1 + 2 + 3),最近发展的速度比较快,2群除特殊情况,不在添加

    2024年02月16日
    浏览(5)
  • SmartSQL 一款开源的数据库文档管理工具

    SmartSQL 一款开源的数据库文档管理工具

    建议直接蓝奏云下载安装 蓝奏云下载:https://wwoc.lanzoum.com/b04dpvcxe 蓝奏云密码:123 项目介绍 SmartSQL 是一款方便、快捷的数据库文档查询、导出工具!从最初仅支持 数据库、 CHM 文档格式开始,通过不断地探索开发、集思广益和不断改进,又陆续支持 Word 、 Excel 、 PDF 、 Htm

    2024年02月07日
    浏览(9)
  • 设计模式大作业小型仓库管理系统【带数据库+文档】

    设计模式大作业小型仓库管理系统【带数据库+文档】

    目录 功能基本描述: 登录功能 货物入库功能 货物出库功能 修改个人信息功能 系统详细设计 单例模式 原型模式 代理模式 观察者模式 备忘录模式 课程设计总结 源代码+数据库+文档: 软件设计模式大作业小型仓库管理系统【带数据库+文档】-Java文档类资源-CSDN下载 系统所用

    2024年02月09日
    浏览(5)
  • 图书管理系统|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

    图书管理系统|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

    图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 四、数据库设计 1、实体ER图 五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:

    2024年03月26日
    浏览(6)
  • 船运物流管理系统|基于springboot船运物流管理系统设计与实现(源码+数据库+文档)

    船运物流管理系统|基于springboot船运物流管理系统设计与实现(源码+数据库+文档)

    船运物流管理系统目录 目录 基于springboot船运物流管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、货运单管理 3、公告管理 4、公告类型管理 5、新闻管理 6、新闻类型管理 四、数据库设计 1、实体ER图  五、核心代码 六、论文参考 七、最新计

    2024年02月22日
    浏览(6)
  • 酒店客房管理系统|基于Springboot的酒店客房管理系统设计与实现(源码+数据库+文档)

    酒店客房管理系统|基于Springboot的酒店客房管理系统设计与实现(源码+数据库+文档)

     酒店客房管理系统目录 目录  基于Springboot的酒店客房管理系统设计与实现  一、前言  二、系统功能设计   三、系统实现   1、 用户信息管理 2、会员信息管理  3、 客房信息管理 4、收藏客房管理   四、数据库设计  1、实体ER图    五、核心代码     六、论文参考

    2024年03月14日
    浏览(7)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包